aboutsummaryrefslogtreecommitdiff
path: root/src/client/input.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/input.rs')
-rw-r--r--src/client/input.rs27
1 files changed, 22 insertions, 5 deletions
diff --git a/src/client/input.rs b/src/client/input.rs
index 1e308d54..ab46e788 100644
--- a/src/client/input.rs
+++ b/src/client/input.rs
@@ -51,14 +51,13 @@ pub fn stdin_reader_loop(
#[cfg(windows)]
{
let _ = (
- host_color_query_sent,
host_theme_query_pending,
host_cell_size_query_sent,
host_mouse_capture_active,
host_sgr_pixels_active,
);
let _ = (host_escape_disambiguation_active, initial_host_input);
- windows_stdin_reader_loop(event_tx, should_quit);
+ windows_stdin_reader_loop(event_tx, should_quit, host_color_query_sent);
}
#[cfg(unix)]
@@ -397,6 +396,7 @@ fn idle_flush_timeout_ms(
fn windows_stdin_reader_loop(
event_tx: mpsc::Sender<ClientLoopEvent>,
should_quit: &Arc<AtomicBool>,
+ host_color_query_sent: bool,
) {
if !super::windows_vti_input_backend_enabled() {
windows_vti::trace_input_transport("reader=crossterm");
@@ -405,7 +405,12 @@ fn windows_stdin_reader_loop(
match windows_vti::console_input_handle() {
Ok(handle) => {
windows_vti::trace_input_transport("reader=windows-console");
- windows_vti::raw_console_reader_loop(handle, event_tx, should_quit);
+ windows_vti::raw_console_reader_loop(
+ handle,
+ event_tx,
+ should_quit,
+ host_color_query_sent,
+ );
}
_ => {
windows_vti::trace_input_transport("reader=crossterm-fallback");
@@ -650,8 +655,20 @@ fn windows_client_input_event_from_raw(
crate::raw_input::RawInputEvent::OuterFocusLost => {
Some(crate::protocol::ClientInputEvent::FocusLost)
}
- crate::raw_input::RawInputEvent::HostDefaultColor { .. }
- | crate::raw_input::RawInputEvent::HostPaletteColors { .. }
+ crate::raw_input::RawInputEvent::HostDefaultColor { kind, color } => {
+ Some(crate::protocol::ClientInputEvent::HostDefaultColor {
+ kind: match kind {
+ crate::terminal_theme::DefaultColorKind::Foreground => {
+ crate::protocol::ClientHostDefaultColorKind::Foreground
+ }
+ crate::terminal_theme::DefaultColorKind::Background => {
+ crate::protocol::ClientHostDefaultColorKind::Background
+ }
+ },
+ color: color.into(),
+ })
+ }
+ crate::raw_input::RawInputEvent::HostPaletteColors { .. }
| crate::raw_input::RawInputEvent::HostColorSchemeChanged(_)
| crate::raw_input::RawInputEvent::HostCellSizeReport { .. }
| crate::raw_input::RawInputEvent::Unsupported => None,