From 053faf259821907166455e9f9a181e2351c4e1fa Mon Sep 17 00:00:00 2001 From: MoonlightWave-12 <135532-MoonlightWave-12@users.noreply.gitlab.gnome.org> Date: Mon, 18 Nov 2024 13:41:48 +0100 Subject: [PATCH] input: Make it possible to deactivate a modifier with any button for it Before this change, one could only deactivate a modifier with the same button that was used to activate it. Pressing another button for the same modifier did not work. Part-of: --- src/layout.rs | 2 +- src/submission.rs | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/layout.rs b/src/layout.rs index 6d85ef6a..75a5c942 100644 --- a/src/layout.rs +++ b/src/layout.rs @@ -1186,7 +1186,7 @@ mod seat { key_id, modifier, time, ), - false => submission.handle_drop_modifier(key_id, time), + false => submission.handle_drop_modifier(key_id, modifier, time), } } // only show when UI is present diff --git a/src/submission.rs b/src/submission.rs index 673f757b..a75aae5b 100644 --- a/src/submission.rs +++ b/src/submission.rs @@ -229,10 +229,11 @@ impl Submission { pub fn handle_drop_modifier( &mut self, - key_id: KeyStateId, + _key_id: KeyStateId, + modifier: Modifier, _time: Timestamp, ) { - vec_remove(&mut self.modifiers_active, |(id, _)| *id == key_id); + vec_remove(&mut self.modifiers_active, |(_, m)| *m == modifier); self.update_modifiers(); }