diff --git a/src/action.rs b/src/action.rs index 693dd1c5..c56462f7 100644 --- a/src/action.rs +++ b/src/action.rs @@ -17,6 +17,7 @@ pub enum Modifier { /// so it's simple to implement as levels are deprecated in squeekboard. Control, Alt, + Mod4, } /// Action to perform on the keypress and, in reverse, on keyrelease diff --git a/src/data.rs b/src/data.rs index e559c515..ecc63fe4 100644 --- a/src/data.rs +++ b/src/data.rs @@ -658,6 +658,9 @@ fn create_action( Modifier::Alt => action::Action::ApplyModifier( action::Modifier::Alt, ), + Modifier::Mod4 => action::Action::ApplyModifier( + action::Modifier::Mod4, + ), unsupported_modifier => { warning_handler.handle( logging::Level::Bug, diff --git a/src/submission.rs b/src/submission.rs index ba9f0c7a..e2230718 100644 --- a/src/submission.rs +++ b/src/submission.rs @@ -270,6 +270,7 @@ impl Submission { .map(|(_id, m)| match m { Modifier::Control => Modifiers::CONTROL, Modifier::Alt => Modifiers::MOD1, + Modifier::Mod4 => Modifiers::MOD4, }) .fold(Modifiers::empty(), |m, n| m | n); self.virtual_keyboard.set_modifiers_state(raw_modifiers);