aboutsummaryrefslogtreecommitdiff
path: root/src/server/headless
diff options
context:
space:
mode:
authorakbash <akbash@herdr.dev>2026-09-13 15:57:31 +0300
committerGitHub <noreply@github.com>2026-09-13 14:57:31 +0200
commit9631f8ee2105c2f6c88248ba6e1a0f9ff21d3708 (patch)
tree9218ab67c0620164b3d1c996244cdf1f8404288c /src/server/headless
parentf48cd6a76821649afd0ba791b0586d30b5a7b877 (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.rs5
-rw-r--r--src/server/headless/tests/pane_graphics.rs18
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
}
));