aboutsummaryrefslogtreecommitdiff
path: root/src/app/api.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/app/api.rs')
-rw-r--r--src/app/api.rs16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/app/api.rs b/src/app/api.rs
index 96c34393..9ebbbe56 100644
--- a/src/app/api.rs
+++ b/src/app/api.rs
@@ -67,6 +67,22 @@ impl App {
return;
}
+ if let AppEvent::PrefixInputSource { active } = ev {
+ // Monolithic path applies the switch here. Server mode forwards it to the foreground
+ // client instead (see HeadlessServer::handle_internal_event_with_forwarding); should an
+ // App-internal drain consume the event before the forwarding drain, the flag keeps the
+ // switch out of the headless server process.
+ if !self.local_input_source_switch {
+ return;
+ }
+ if active {
+ self.prefix_input_source.switch_to_ascii();
+ } else {
+ self.prefix_input_source.restore();
+ }
+ return;
+ }
+
if let AppEvent::GitStatusRefreshed {
results,
cache_updates,