aboutsummaryrefslogtreecommitdiffstats
path: root/src/cocoa_bridge.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/cocoa_bridge.rs')
-rw-r--r--src/cocoa_bridge.rs11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/cocoa_bridge.rs b/src/cocoa_bridge.rs
index 11dc1c9..5f6cee7 100644
--- a/src/cocoa_bridge.rs
+++ b/src/cocoa_bridge.rs
@@ -224,8 +224,15 @@ mode <play><up> {
let map = map_group.maps.get(trigger);
let mode = map_group.modes.get(trigger);
- if let Some(ref mut in_mode) = state.in_mode {
- if let Some(mode) = map_group.modes.get(in_mode) {
+ if let Some(in_mode) = state.in_mode.clone() {
+ if let Some(mode) = map_group.modes.get(&in_mode) {
+ // Deactivate mode by pressing current mode trigger
+ if &in_mode[..] == trigger {
+ state.in_mode = None;
+
+ return Some(KeyActionResult::new(ActionKind::Mode))
+ }
+
if let Some(map) = mode.get(trigger) {
return match map.kind {
MapKind::Map => {