diff --git a/hw/xwayland/xwayland-input.c b/hw/xwayland/xwayland-input.c index eda69a193..177c57303 100644 --- a/hw/xwayland/xwayland-input.c +++ b/hw/xwayland/xwayland-input.c @@ -3202,6 +3202,8 @@ xwl_seat_emulate_pointer_warp(struct xwl_seat *xwl_seat, static Bool xwl_seat_maybe_lock_on_hidden_cursor(struct xwl_seat *xwl_seat) { + struct xwl_screen *xwl_screen = xwl_seat->xwl_screen; + /* Some clients use hidden cursor+confineTo+relative motion * to implement infinite panning (eg. 3D views), lock the * pointer for so the relative pointer is used. @@ -3212,6 +3214,9 @@ xwl_seat_maybe_lock_on_hidden_cursor(struct xwl_seat *xwl_seat) if (!xwl_seat->focus_window) return FALSE; + if (!xwl_screen->rootless) + return FALSE; + if (xwl_seat->cursor_confinement_window != xwl_seat->focus_window) return FALSE;