diff --git a/src/action.rs b/src/action.rs index 5b7f5fe9..5cbd27f4 100644 --- a/src/action.rs +++ b/src/action.rs @@ -15,6 +15,7 @@ pub enum Modifier { /// Control and Alt are the only modifiers /// which doesn't interfere with levels, /// so it's simple to implement as levels are deprecated in squeekboard. + Shift, Control, Alt, Mod4, diff --git a/src/data/parsing.rs b/src/data/parsing.rs index 6aaf78fb..7f0cb316 100644 --- a/src/data/parsing.rs +++ b/src/data/parsing.rs @@ -420,6 +420,9 @@ fn create_action( }).collect(), }, SubmitData::Modifier(modifier) => match modifier { + Modifier::Shift => action::Action::ApplyModifier( + action::Modifier::Shift, + ), Modifier::Control => action::Action::ApplyModifier( action::Modifier::Control, ), diff --git a/src/submission.rs b/src/submission.rs index 3a282fdb..7a089d0f 100644 --- a/src/submission.rs +++ b/src/submission.rs @@ -238,6 +238,7 @@ impl Submission { fn update_modifiers(&mut self) { let raw_modifiers = self.modifiers_active.iter() .map(|(_id, m)| match m { + Modifier::Shift => Modifiers::SHIFT, Modifier::Control => Modifiers::CONTROL, Modifier::Alt => Modifiers::MOD1, Modifier::Mod4 => Modifiers::MOD4,