Revert "xwayland: Update sprite prior to clearing the focus window"

This breaks regular toplevel enter/leave events when crossing to/from a
native Wayland window.

A better fix for the original issue follows.

This reverts commit b97b459c06.

Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2008>
This commit is contained in:
Olivier Fourdan 2025-05-27 10:35:21 +02:00 committed by Marge Bot
parent 0d2213ec44
commit 8a77ab083f

View File

@ -616,19 +616,21 @@ pointer_handle_leave(void *data, struct wl_pointer *pointer,
{ {
struct xwl_seat *xwl_seat = data; struct xwl_seat *xwl_seat = data;
struct xwl_screen *xwl_screen = xwl_seat->xwl_screen; struct xwl_screen *xwl_screen = xwl_seat->xwl_screen;
Bool focus_lost = FALSE;
xwl_screen->serial = serial; xwl_screen->serial = serial;
if (xwl_screen->rootless)
xwl_seat_leave_ptr(xwl_seat, !!xwl_seat->focus_window);
/* The pointer has left a known xwindow, save it for a possible match /* The pointer has left a known xwindow, save it for a possible match
* in sprite_check_lost_focus() * in sprite_check_lost_focus()
*/ */
if (xwl_seat->focus_window) { if (xwl_seat->focus_window) {
xwl_seat->last_focus_window = xwl_seat->focus_window; xwl_seat->last_focus_window = xwl_seat->focus_window;
xwl_seat->focus_window = NULL; xwl_seat->focus_window = NULL;
focus_lost = TRUE;
} }
if (xwl_screen->rootless)
xwl_seat_leave_ptr(xwl_seat, focus_lost);
} }
static void static void