Просмотр исходного кода

wayland: Don't try to set the seat cursor when no pointer object exists

(cherry picked from commit 79b40ad3975431cbab09f29ad90b5aef469131d8)
Frank Praznik 1 месяц назад
Родитель
Сommit
b7df720371
1 измененных файлов с 8 добавлено и 6 удалено
  1. 8 6
      src/video/wayland/SDL_waylandmouse.c

+ 8 - 6
src/video/wayland/SDL_waylandmouse.c

@@ -1189,12 +1189,14 @@ static bool Wayland_ShowCursor(SDL_Cursor *cursor)
     Wayland_PointerObject obj;
 
     wl_list_for_each (seat, &d->seat_list, link) {
-        obj.wl_pointer = seat->pointer.wl_pointer;
-        obj.is_pointer = true;
-        if (mouse->focus && mouse->focus->internal == seat->pointer.focus) {
-            Wayland_CursorStateSetCursor(&seat->pointer.cursor_state, &obj, seat->pointer.focus, seat->pointer.enter_serial, cursor);
-        } else if (!seat->pointer.focus) {
-            Wayland_CursorStateResetCursor(&seat->pointer.cursor_state);
+        if (seat->pointer.wl_pointer) {
+            obj.wl_pointer = seat->pointer.wl_pointer;
+            obj.is_pointer = true;
+            if (mouse->focus && mouse->focus->internal == seat->pointer.focus) {
+                Wayland_CursorStateSetCursor(&seat->pointer.cursor_state, &obj, seat->pointer.focus, seat->pointer.enter_serial, cursor);
+            } else if (!seat->pointer.focus) {
+                Wayland_CursorStateResetCursor(&seat->pointer.cursor_state);
+            }
         }
 
         SDL_WaylandPenTool *tool;