aboutsummaryrefslogtreecommitdiff
path: root/src/app/runtime.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/app/runtime.rs')
-rw-r--r--src/app/runtime.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/app/runtime.rs b/src/app/runtime.rs
index 4ddcde6c..5bfa9141 100644
--- a/src/app/runtime.rs
+++ b/src/app/runtime.rs
@@ -61,9 +61,11 @@ impl App {
&mut self,
msg: crate::api::ApiRequestMessage,
) -> bool {
+ let previous_mode = self.state.mode;
let changed = crate::api::request_changes_ui(&msg.request);
let response = self.handle_api_request(msg.request);
let _ = msg.respond_to.send(response);
+ self.sync_prefix_input_source(previous_mode);
changed
}
@@ -91,6 +93,7 @@ impl App {
&mut self,
event: crate::raw_input::RawInputEvent,
) -> bool {
+ let previous_mode = self.state.mode;
let changed = match event {
crate::raw_input::RawInputEvent::Key(key) => {
let key_id = repeat_key_identity(&key);
@@ -150,6 +153,7 @@ impl App {
}
crate::raw_input::RawInputEvent::Unsupported => false,
};
+ self.sync_prefix_input_source(previous_mode);
self.shutdown_detached_terminal_runtimes();
changed
}
@@ -552,7 +556,7 @@ impl App {
break;
};
had_event = true;
- self.handle_internal_event(ev);
+ self.handle_internal_event_with_prefix_sync(ev);
}
had_event
}