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:
parent
0d2213ec44
commit
8a77ab083f
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue