fix(panel item): use u32 instead of bool for button state

This commit is contained in:
Nova
2022-09-05 12:32:43 -04:00
parent 2ea2ec0b07
commit cd10fda29e

View File

@@ -11,7 +11,7 @@ use crate::{
spatial::Spatial, spatial::Spatial,
}, },
}; };
use anyhow::{anyhow, Result}; use anyhow::{anyhow, bail, Result};
use glam::Mat4; use glam::Mat4;
use lazy_static::lazy_static; use lazy_static::lazy_static;
use libstardustxr::{flex::flexbuffer_from_vector_arguments, flex_to_vec2}; use libstardustxr::{flex::flexbuffer_from_vector_arguments, flex_to_vec2};
@@ -236,15 +236,17 @@ impl PanelItem {
if *panel_item.seat_data.pointer_active.lock() { if *panel_item.seat_data.pointer_active.lock() {
let flex_vec = flexbuffers::Reader::get_root(data)?.get_vector()?; let flex_vec = flexbuffers::Reader::get_root(data)?.get_vector()?;
let button = flex_vec.index(0)?.get_u64()? as u32; 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( pointer.button(
0, 0,
0, 0,
button, button,
if active { match state {
ButtonState::Pressed 0 => ButtonState::Released,
} else { 1 => ButtonState::Pressed,
ButtonState::Released _ => {
bail!("Button state is out of bounds")
}
}, },
); );
pointer.frame(); pointer.frame();