From 270ba7bf802b884291d5794261d0c6cf66b0224c Mon Sep 17 00:00:00 2001 From: Ian Douglas Scott Date: Tue, 14 Jul 2026 15:33:05 -0700 Subject: [PATCH] image-copy: Update toplevel cursor position for `cursor_follows_focus` --- src/input/mod.rs | 2 +- src/shell/focus/mod.rs | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/input/mod.rs b/src/input/mod.rs index 33fb3148..0cb26a9d 100644 --- a/src/input/mod.rs +++ b/src/input/mod.rs @@ -2521,7 +2521,7 @@ fn mapped_output_for_device<'a, D: Device + 'static>( map_to_output.or_else(|| shell.builtin_output()) } -fn update_output_image_copy_cursor_position( +pub fn update_output_image_copy_cursor_position( shell: &Shell, clock: &Clock, output: &Output, diff --git a/src/shell/focus/mod.rs b/src/shell/focus/mod.rs index 9374230a..4e88c499 100644 --- a/src/shell/focus/mod.rs +++ b/src/shell/focus/mod.rs @@ -378,6 +378,14 @@ fn update_focus_state( .cloned() .unwrap_or(seat.active_output()); + crate::input::update_output_image_copy_cursor_position( + &shell, + &state.common.clock, + &output, + seat, + new_pos, + ); + let focus = State::surface_under(new_pos, &output, &shell) .map(|(focus, loc)| (focus, loc.as_logical())); //drop here to avoid multiple borrows