diff options
Diffstat (limited to 'src/client')
| -rw-r--r-- | src/client/mod.rs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/client/mod.rs b/src/client/mod.rs index 6a70c79c..da0e4e53 100644 --- a/src/client/mod.rs +++ b/src/client/mod.rs @@ -1354,6 +1354,10 @@ async fn run_client_loop( .set_nonblocking(false) .map_err(ClientError::ConnectionFailed)?; + // This (foreground) client owns the prefix ASCII input-source switch; a no-op on non-macOS. + use crate::platform::PrefixInputSource; + let mut prefix_input_source = crate::platform::RealPrefixInputSource::default(); + // Main event loop. while !should_quit.load(Ordering::Acquire) { let event = tokio::select! { @@ -1560,6 +1564,13 @@ async fn run_client_loop( host_mouse_capture_active.store(desired, Ordering::Release); } } + ServerMessage::PrefixInputSource { active } => { + if active { + prefix_input_source.switch_to_ascii(); + } else { + prefix_input_source.restore(); + } + } ServerMessage::Welcome { .. } => { debug!("received unexpected Welcome in main loop"); } |
