aboutsummaryrefslogtreecommitdiff
path: root/src/input.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/input.rs')
-rw-r--r--src/input.rs23
1 files changed, 16 insertions, 7 deletions
diff --git a/src/input.rs b/src/input.rs
index b7704221..ca08c379 100644
--- a/src/input.rs
+++ b/src/input.rs
@@ -1,6 +1,6 @@
use smithay::backend::input::{
AbsolutePositionEvent, Axis, AxisSource, ButtonState, Event, InputBackend, InputEvent,
- KeyboardKeyEvent, PointerAxisEvent, PointerButtonEvent, PointerMotionEvent,
+ KeyState, KeyboardKeyEvent, PointerAxisEvent, PointerButtonEvent, PointerMotionEvent,
};
use smithay::input::keyboard::{keysyms, FilterResult};
use smithay::input::pointer::{AxisFrame, ButtonEvent, MotionEvent, RelativeMotionEvent};
@@ -34,13 +34,22 @@ impl Niri {
event.state(),
serial,
time,
- |_, mods, keysym| match keysym.modified_sym() {
- keysyms::KEY_E if mods.logo => FilterResult::Intercept(InputAction::Quit),
- keysym @ keysyms::KEY_XF86Switch_VT_1..=keysyms::KEY_XF86Switch_VT_12 => {
- let vt = (keysym - keysyms::KEY_XF86Switch_VT_1 + 1) as i32;
- FilterResult::Intercept(InputAction::ChangeVt(vt))
+ |_, mods, keysym| {
+ if event.state() == KeyState::Pressed {
+ match keysym.modified_sym() {
+ keysyms::KEY_E if mods.logo => {
+ FilterResult::Intercept(InputAction::Quit)
+ }
+ keysym @ keysyms::KEY_XF86Switch_VT_1
+ ..=keysyms::KEY_XF86Switch_VT_12 => {
+ let vt = (keysym - keysyms::KEY_XF86Switch_VT_1 + 1) as i32;
+ FilterResult::Intercept(InputAction::ChangeVt(vt))
+ }
+ _ => FilterResult::Forward,
+ }
+ } else {
+ FilterResult::Forward
}
- _ => FilterResult::Forward,
},
);