fix cursor: dont reset to left_ptr over WINGs/WM frame_bufs

wl_update_pointer_focus reset cursor to left_ptr on every motion
event when no Wayland surface was under the pointer. WINGs compositor
views are pixman scene nodes, not Wayland surfaces, so surface was
always NULL over dialogs. Now preserve cursor when over frame_bufs.
This commit is contained in:
lkn 2026-06-23 23:54:33 +02:00
parent 70a456b72d
commit f73630be43
1 changed files with 4 additions and 3 deletions

View File

@ -201,9 +201,10 @@ deliver:
last_focused_surface = NULL;
}
wlr_seat_pointer_clear_focus(wl_state.seat);
/* 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)
/* Reset to arrow only when not over a WINGs/WM frame_buf and not grabbing.
* WINGs views are compositor nodes (not Wayland surfaces) so surface==NULL. */
if (!wl_state.grab_type
&& !frame_buf_hit(wl_state.pointer_x, wl_state.pointer_y))
wl_set_cursor_image("left_ptr");
}
/* focus-follows-pointer — when the pointer enters a new