xwayland: do not auto-lock pointer when rootful
Xwayland tries to be smart and guess the intention of the X11 clients sometimes, like issuing a pointer lock when a client hides the pointer when confined. While this is a good thing when running rootless, this is problematic when running rootful as the pointer will be automatically locked unless the "retro" mode is used (which doesn't hide the cursor, unlike the default). Make sure we don't trigger the automatic pointer lock when the cursor is hidden when running rootful. Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> Reviewed-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
parent
d370f1e58a
commit
503e7663f8
|
@ -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;
|
||||
|
||||
|
|
Loading…
Reference in New Issue