aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorCan Celik <ogulcancelik@gmail.com>2026-07-26 04:22:05 +0300
committerGitHub <noreply@github.com>2026-07-26 04:22:05 +0300
commite536bd8bd99de975cb2d15bb384e6e35f88ef88e (patch)
tree4de9e0d10c7b0727e693f70b4dbd7859da45f24d /src/server
parent8843bbb0c4dc4e6b52ca5d0a6592ce80be56a19c (diff)
fix: support non-us shifted keybindings (#1876)
* fix: support non-us shifted keybindings refs #1870 * docs: require current pull request base
Diffstat (limited to 'src/server')
-rw-r--r--src/server/headless.rs41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/server/headless.rs b/src/server/headless.rs
index 0b25dd97..c1644dcd 100644
--- a/src/server/headless.rs
+++ b/src/server/headless.rs
@@ -8425,6 +8425,46 @@ next_tab = ""
}
#[tokio::test]
+ async fn command_mode_updates_headless_client_keyboard_flags() {
+ let mut server = test_headless_server();
+ let (client_tx, client_control_rx, _client_rx) = test_client_writer();
+ server.clients.insert(
+ 1,
+ ClientConnection::new(
+ (80, 24),
+ crate::kitty_graphics::HostCellSize::default(),
+ crate::terminal_theme::TerminalTheme::default(),
+ None,
+ 1,
+ RenderEncoding::SemanticFrame,
+ Some(client_tx),
+ ),
+ );
+
+ server.app.state.mode = crate::app::Mode::Prefix;
+ server.stream_host_keyboard_enhancement_flags();
+ assert!(matches!(
+ read_server_message(
+ client_control_rx
+ .recv_timeout(Duration::from_millis(100))
+ .expect("command-mode keyboard enhancement message")
+ ),
+ ServerMessage::KittyKeyboardReportAll { enabled: true }
+ ));
+
+ server.app.state.mode = crate::app::Mode::Terminal;
+ server.stream_host_keyboard_enhancement_flags();
+ assert!(matches!(
+ read_server_message(
+ client_control_rx
+ .recv_timeout(Duration::from_millis(100))
+ .expect("IME-compatible keyboard enhancement message")
+ ),
+ ServerMessage::KittyKeyboardReportAll { enabled: false }
+ ));
+ }
+
+ #[tokio::test]
async fn focused_report_all_pane_updates_headless_client_keyboard_flags() {
let mut server = test_headless_server();
let (client_tx, client_control_rx, _client_rx) = test_client_writer();
@@ -8456,6 +8496,7 @@ next_tab = ""
));
assert!(server.app.close_popup_pane());
+ server.app.state.mode = crate::app::Mode::Terminal;
server.stream_host_keyboard_enhancement_flags();
assert!(matches!(
read_server_message(