xwayland: Fix crashes when there is no pointer

When running with a weston session without a pointer device (thus with
the wl_seat not having a pointer) xwayland pointer warping and pointer
confining should simply be ignored to avoid crashes.

Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
(cherry picked from commit d35f68336b)
This commit is contained in:
Sjoerd Simons 2020-04-10 16:34:06 +02:00 committed by Olivier Fourdan
parent 3aa31823db
commit 533cc6ca04

View File

@ -2782,6 +2782,9 @@ xwl_seat_can_emulate_pointer_warp(struct xwl_seat *xwl_seat)
{
struct xwl_screen *xwl_screen = xwl_seat->xwl_screen;
if (!xwl_seat->pointer)
return FALSE;
if (!xwl_screen->relative_pointer_manager)
return FALSE;
@ -2874,6 +2877,9 @@ xwl_seat_confine_pointer(struct xwl_seat *xwl_seat,
if (!pointer_constraints)
return;
if (!xwl_seat->wl_pointer)
return;
if (xwl_seat->cursor_confinement_window == xwl_window &&
xwl_seat->confined_pointer)
return;