mirror of
https://github.com/libsdl-org/SDL.git
synced 2026-06-06 14:43:20 +00:00
wayland: Also check tools for cursor usage during cursor destruction
(cherry picked from commit 35a80bdf1f)
This commit is contained in:
parent
799d2ca80b
commit
3b4ea10ebc
2 changed files with 16 additions and 3 deletions
|
|
@ -189,7 +189,6 @@ typedef struct SDL_WaylandSeat
|
|||
struct zwp_pointer_gesture_pinch_v1 *gesture_pinch;
|
||||
|
||||
SDL_WindowData *focus;
|
||||
SDL_CursorData *current_cursor;
|
||||
|
||||
// According to the spec, a seat can only have one active gesture of any type at a time.
|
||||
SDL_WindowData *gesture_focus;
|
||||
|
|
|
|||
|
|
@ -897,7 +897,7 @@ static void Wayland_FreeCursorData(SDL_CursorData *d)
|
|||
// Stop any frame callbacks and detach buffers associated with the cursor being destroyed.
|
||||
wl_list_for_each (seat, &video_data->seat_list, link)
|
||||
{
|
||||
if (seat->pointer.current_cursor == d) {
|
||||
if (seat->pointer.cursor_state.current_cursor == d) {
|
||||
Wayland_CursorStateDestroyFrameCallback(&seat->pointer.cursor_state);
|
||||
|
||||
// Custom cursor buffers are about to be destroyed, so ensure they are detached.
|
||||
|
|
@ -905,7 +905,21 @@ static void Wayland_FreeCursorData(SDL_CursorData *d)
|
|||
wl_surface_attach(seat->pointer.cursor_state.surface, NULL, 0, 0);
|
||||
}
|
||||
|
||||
seat->pointer.current_cursor = NULL;
|
||||
seat->pointer.cursor_state.current_cursor = NULL;
|
||||
}
|
||||
|
||||
SDL_WaylandPenTool *tool;
|
||||
wl_list_for_each (tool, &seat->tablet.tool_list, link) {
|
||||
Wayland_CursorStateDestroyFrameCallback(&tool->cursor_state);
|
||||
|
||||
if (tool->cursor_state.current_cursor == d) {
|
||||
// Custom cursor buffers are about to be destroyed, so ensure they are detached.
|
||||
if (!d->is_system_cursor && tool->cursor_state.surface) {
|
||||
wl_surface_attach(seat->pointer.cursor_state.surface, NULL, 0, 0);
|
||||
}
|
||||
|
||||
tool->cursor_state.current_cursor = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue