From cd10fda29eb329faa78a0a99f134c0561a3874d9 Mon Sep 17 00:00:00 2001 From: Nova Date: Mon, 5 Sep 2022 12:32:43 -0400 Subject: [PATCH] fix(panel item): use u32 instead of bool for button state --- src/wayland/panel_item.rs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/wayland/panel_item.rs b/src/wayland/panel_item.rs index c7e99f9..f4b1eb3 100644 --- a/src/wayland/panel_item.rs +++ b/src/wayland/panel_item.rs @@ -11,7 +11,7 @@ use crate::{ spatial::Spatial, }, }; -use anyhow::{anyhow, Result}; +use anyhow::{anyhow, bail, Result}; use glam::Mat4; use lazy_static::lazy_static; use libstardustxr::{flex::flexbuffer_from_vector_arguments, flex_to_vec2}; @@ -236,15 +236,17 @@ impl PanelItem { if *panel_item.seat_data.pointer_active.lock() { let flex_vec = flexbuffers::Reader::get_root(data)?.get_vector()?; let button = flex_vec.index(0)?.get_u64()? as u32; - let active = flex_vec.index(1)?.get_bool()?; + let state = flex_vec.index(1)?.get_u64()? as u32; pointer.button( 0, 0, button, - if active { - ButtonState::Pressed - } else { - ButtonState::Released + match state { + 0 => ButtonState::Released, + 1 => ButtonState::Pressed, + _ => { + bail!("Button state is out of bounds") + } }, ); pointer.frame();