From ca550f356b791f3319f9559031bf6858b11e7029 Mon Sep 17 00:00:00 2001 From: galister <22305755+galister@users.noreply.github.com> Date: Thu, 23 Jul 2026 11:26:50 +0900 Subject: [PATCH] refactor KeyCombo --- wayvr/src/backend/wayvr/input_capture.rs | 48 ++++++++++++------------ wayvr/src/backend/wayvr/mod.rs | 12 +++--- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/wayvr/src/backend/wayvr/input_capture.rs b/wayvr/src/backend/wayvr/input_capture.rs index 974d92bd..c315fa17 100644 --- a/wayvr/src/backend/wayvr/input_capture.rs +++ b/wayvr/src/backend/wayvr/input_capture.rs @@ -30,14 +30,14 @@ const POLL_TIMEOUT_MS: i32 = 20; #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub enum KeyCombo { - Super1, - Super2, - Super3, - Super4, - SuperTab, - AltF4, + Set1, + Set2, + Set3, + Set4, + SwitchApp, + CloseApp, /// Always consumed by InputCapture internally - CtrlAltDel, + EmergencyRelease, } #[derive(Debug, Clone)] @@ -553,7 +553,7 @@ fn process_libinput_event( if !grabbed { // while ungrabbed, SuperTab will arm an automatic grab if allow_deferred_grab - && key_combo_is_pressed(KeyCombo::SuperTab, &state.pressed_keys) + && key_combo_is_pressed(KeyCombo::SwitchApp, &state.pressed_keys) { *pending_grab = true; } @@ -561,19 +561,19 @@ fn process_libinput_event( return ProcessResult::Continue; } - if pressed && key_combo_is_pressed(KeyCombo::CtrlAltDel, &state.pressed_keys) { + if pressed && key_combo_is_pressed(KeyCombo::EmergencyRelease, &state.pressed_keys) { log::info!("Ctrl+Alt+Del pressed, ungrabbing all input devices"); return ProcessResult::EmergencyUngrab; } // while grabbed, these combos get emitted as normal for combo in [ - KeyCombo::SuperTab, - KeyCombo::AltF4, - KeyCombo::Super1, - KeyCombo::Super2, - KeyCombo::Super3, - KeyCombo::Super4, + KeyCombo::SwitchApp, + KeyCombo::CloseApp, + KeyCombo::Set1, + KeyCombo::Set2, + KeyCombo::Set3, + KeyCombo::Set4, ] { let combo_pressed = key_combo_is_pressed(combo, &state.pressed_keys); let was_pressed = state.active_combos.contains(&combo); @@ -873,20 +873,20 @@ fn key_combo_is_pressed(combo: KeyCombo, pressed: &HashSet) -> bool { let alt = pressed.contains(&KeyCode::KEY_LEFTALT.0) || pressed.contains(&KeyCode::KEY_RIGHTALT.0); - let ctrl = - pressed.contains(&KeyCode::KEY_LEFTCTRL.0) || pressed.contains(&KeyCode::KEY_RIGHTCTRL.0); + // let ctrl = + // pressed.contains(&KeyCode::KEY_LEFTCTRL.0) || pressed.contains(&KeyCode::KEY_RIGHTCTRL.0); let meta = pressed.contains(&KeyCode::KEY_LEFTMETA.0) || pressed.contains(&KeyCode::KEY_RIGHTMETA.0); match combo { - KeyCombo::AltF4 => alt && pressed.contains(&KeyCode::KEY_F4.0), - KeyCombo::CtrlAltDel => ctrl && alt && pressed.contains(&KeyCode::KEY_DELETE.0), - KeyCombo::SuperTab => meta && pressed.contains(&KeyCode::KEY_TAB.0), - KeyCombo::Super1 => meta && pressed.contains(&KeyCode::KEY_1.0), - KeyCombo::Super2 => meta && pressed.contains(&KeyCode::KEY_2.0), - KeyCombo::Super3 => meta && pressed.contains(&KeyCode::KEY_3.0), - KeyCombo::Super4 => meta && pressed.contains(&KeyCode::KEY_4.0), + KeyCombo::CloseApp => alt && pressed.contains(&KeyCode::KEY_F4.0), + KeyCombo::EmergencyRelease => meta && pressed.contains(&KeyCode::KEY_BACKSPACE.0), + KeyCombo::SwitchApp => meta && pressed.contains(&KeyCode::KEY_X.0), + KeyCombo::Set1 => meta && pressed.contains(&KeyCode::KEY_1.0), + KeyCombo::Set2 => meta && pressed.contains(&KeyCode::KEY_2.0), + KeyCombo::Set3 => meta && pressed.contains(&KeyCode::KEY_3.0), + KeyCombo::Set4 => meta && pressed.contains(&KeyCode::KEY_4.0), } } diff --git a/wayvr/src/backend/wayvr/mod.rs b/wayvr/src/backend/wayvr/mod.rs index 8afce482..ea86326f 100644 --- a/wayvr/src/backend/wayvr/mod.rs +++ b/wayvr/src/backend/wayvr/mod.rs @@ -847,13 +847,13 @@ impl WvrServerState { self.wm.keyboard_focus = None; } input_capture::CapturedEvent::KeyCombo { combo, pressed } => match combo { - input_capture::KeyCombo::AltF4 if pressed => { + input_capture::KeyCombo::CloseApp if pressed => { if let Some(hover) = self.wm.mouse.as_mut() { let window_handle = hover.hover_window; self.close_window(window_handle); } } - input_capture::KeyCombo::SuperTab => { + input_capture::KeyCombo::SwitchApp => { if pressed { input_state.picking_focus = super::input::FocusPickState::Aiming; } else { @@ -870,16 +870,16 @@ impl WvrServerState { ); } } - input_capture::KeyCombo::Super1 if pressed => { + input_capture::KeyCombo::Set1 if pressed => { tasks.enqueue(TaskType::Overlay(OverlayTask::ToggleSet(0))) } - input_capture::KeyCombo::Super2 if pressed => { + input_capture::KeyCombo::Set2 if pressed => { tasks.enqueue(TaskType::Overlay(OverlayTask::ToggleSet(1))) } - input_capture::KeyCombo::Super3 if pressed => { + input_capture::KeyCombo::Set3 if pressed => { tasks.enqueue(TaskType::Overlay(OverlayTask::ToggleSet(2))) } - input_capture::KeyCombo::Super4 if pressed => { + input_capture::KeyCombo::Set4 if pressed => { tasks.enqueue(TaskType::Overlay(OverlayTask::ToggleSet(3))) } _ => {}