From cfd3d0016b3df9386bdaffed1550166050b6ba61 Mon Sep 17 00:00:00 2001 From: Nova Date: Wed, 6 Dec 2023 17:06:07 -0500 Subject: [PATCH] feat(input/mouse_pointer): back/forward click grab --- src/objects/input/mouse_pointer.rs | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/objects/input/mouse_pointer.rs b/src/objects/input/mouse_pointer.rs index cdadf4c..4d1d93f 100644 --- a/src/objects/input/mouse_pointer.rs +++ b/src/objects/input/mouse_pointer.rs @@ -19,9 +19,12 @@ use xkbcommon::xkb::{Context, Keymap, FORMAT_TEXT_V1}; #[derive(Default, Deserialize, Serialize)] struct MouseEvent { select: f32, + middle: f32, + context: f32, grab: f32, scroll_continuous: Vec2, scroll_discrete: Vec2, + raw_input_events: Vec, } #[derive(Debug, Clone, Deserialize, Serialize)] @@ -96,7 +99,22 @@ impl MousePointer { } else { 0.0f32 }; - self.mouse_datamap.grab = if sk.input_key(Key::MouseRight).contains(ButtonState::ACTIVE) + self.mouse_datamap.middle = + if sk.input_key(Key::MouseCenter).contains(ButtonState::ACTIVE) { + 1.0f32 + } else { + 0.0f32 + }; + self.mouse_datamap.context = + if sk.input_key(Key::MouseRight).contains(ButtonState::ACTIVE) { + 1.0f32 + } else { + 0.0f32 + }; + self.mouse_datamap.grab = if sk.input_key(Key::MouseBack).contains(ButtonState::ACTIVE) + || sk + .input_key(Key::MouseForward) + .contains(ButtonState::ACTIVE) { 1.0f32 } else {