From da9a62bf234224ce64da23e7ee58df3d7e19234d Mon Sep 17 00:00:00 2001 From: Ollie Date: Fri, 29 May 2026 17:19:14 +0200 Subject: [PATCH] =?UTF-8?q?wl=5Fbackend:=20cursor=20reset=20only=20on=20po?= =?UTF-8?q?inter=20leave=20(no=20enter=20reset)=20=E2=80=94=20fixes=20move?= =?UTF-8?q?=20cursor,=20no=20I-beam=20leak?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/backend/wayland/wl_backend.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/backend/wayland/wl_backend.c b/src/backend/wayland/wl_backend.c index 905682c..b61caaa 100644 --- a/src/backend/wayland/wl_backend.c +++ b/src/backend/wayland/wl_backend.c @@ -6436,11 +6436,6 @@ wl_update_pointer_focus(uint32_t time_msec) if (surface) { if (surface != last_focused_surface) { last_focused_surface = surface; - /* Set default cursor on new surface entry. The client will - * override via wl_pointer.set_cursor, but if we're in a grab - * (move/resize, DND) the grab system manages the cursor. */ - if (!wl_state.grab_type) - wl_set_cursor_image("left_ptr"); } wlr_seat_pointer_notify_enter(wl_state.seat, surface, sx, sy); wlr_seat_pointer_notify_motion(wl_state.seat, time_msec, sx, sy); @@ -6450,8 +6445,8 @@ wl_update_pointer_focus(uint32_t time_msec) last_focused_surface = NULL; } wlr_seat_pointer_clear_focus(wl_state.seat); - /* Restore WM cursor when pointer leaves all surfaces. - * Don't reset during grabs — pointer_change_grab manages that. */ + /* When pointer leaves all surfaces, reset to default arrow. + * Don't reset during grabs — the grab system manages the cursor. */ if (!wl_state.grab_type) wl_set_cursor_image("left_ptr"); }