diff options
| author | akbash <akbash@herdr.dev> | 2026-09-13 15:57:31 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-09-13 14:57:31 +0200 |
| commit | 9631f8ee2105c2f6c88248ba6e1a0f9ff21d3708 (patch) | |
| tree | 9218ab67c0620164b3d1c996244cdf1f8404288c /src/server/headless | |
| parent | f48cd6a76821649afd0ba791b0586d30b5a7b877 (diff) | |
fix: decouple pixel mouse from pane graphics (#4045)
refs #3295
Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
Co-authored-by: JJ Liebig <jonathan.liebig@gmail.com>
Diffstat (limited to 'src/server/headless')
| -rw-r--r-- | src/server/headless/render.rs | 5 | ||||
| -rw-r--r-- | src/server/headless/tests/pane_graphics.rs | 18 |
2 files changed, 7 insertions, 16 deletions
diff --git a/src/server/headless/render.rs b/src/server/headless/render.rs index 882a1615..87c96964 100644 --- a/src/server/headless/render.rs +++ b/src/server/headless/render.rs @@ -46,10 +46,7 @@ impl HeadlessServer { let child_requests_mouse = focused.is_some_and(|(runtime, _)| runtime.mouse_reporting_enabled()); let sgr_pixels = client.pixel_mouse - && focused.is_some_and(|(runtime, pane_id)| { - self.app.pane_graphics.active_for_pane(pane_id) - && runtime.sgr_pixel_mouse_enabled() - }); + && focused.is_some_and(|(runtime, _)| runtime.sgr_pixel_mouse_enabled()); Some(( client_id, client.shell_surface_active diff --git a/src/server/headless/tests/pane_graphics.rs b/src/server/headless/tests/pane_graphics.rs index 0414b6b3..0b7a8095 100644 --- a/src/server/headless/tests/pane_graphics.rs +++ b/src/server/headless/tests/pane_graphics.rs @@ -594,14 +594,18 @@ fn direct_stream_message( } #[tokio::test] -async fn pixel_mouse_activation_requires_graphics_demand_not_direct_transport() { - let (mut server, _client_rx, pane_id) = +async fn pixel_mouse_activation_follows_child_1016_without_graphics_demand() { + let (mut server, _client_rx, _pane_id) = retained_test_server(b"\x1b[?1003h\x1b[?1006h\x1b[?1016h"); let (writer, control_rx, _render_rx) = test_client_writer(); let client = server.clients.get_mut(&1).unwrap(); client.writer = Some(writer); client.direct_graphics = false; client.pixel_mouse = true; + client.cell_size = crate::kitty_graphics::HostCellSize { + width_px: 10, + height_px: 20, + }; client.host_mouse_capture_active = None; client.host_sgr_pixels_active = None; server.app.direct_graphics_available = false; @@ -611,16 +615,6 @@ async fn pixel_mouse_activation_requires_graphics_demand_not_direct_transport() read_server_message(control_rx.recv_timeout(Duration::from_millis(100)).unwrap()), ServerMessage::MouseCapture { enabled: true, - sgr_pixels: false - } - )); - - set_graphics_layer(&mut server, pane_id, vec![1, 2, 3]); - server.stream_host_mouse_capture_mode(); - assert!(matches!( - read_server_message(control_rx.recv_timeout(Duration::from_millis(100)).unwrap()), - ServerMessage::MouseCapture { - enabled: true, sgr_pixels: true } )); |
