From f1995de1c43733a9e586605674c4071357a58e78 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Fri, 28 Aug 2015 14:28:11 +1000 Subject: [PATCH] xwayland: call through to miPointerWarpCursor on warp_cursor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is (eventually) called during InitializeSprite() → *pScreen->SetCursorPosition → miPointerSetCursorPosition when a device is set to floating. We don't do anything special outselves, but we need to pass on to the next layer to make sure the device is initialized properly. Otherwise, pScreen stays NULL and eventually crashes the server when we try to clean up behind us. Test case: grab a device → floats it, ungrab again → crash Reported-by: Jason Gerecke Signed-off-by: Peter Hutterer Reviewed-by: Olivier Fourdan --- hw/xwayland/xwayland-cursor.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/xwayland/xwayland-cursor.c b/hw/xwayland/xwayland-cursor.c index c137e1ec0..76729db9e 100644 --- a/hw/xwayland/xwayland-cursor.c +++ b/hw/xwayland/xwayland-cursor.c @@ -199,6 +199,7 @@ xwl_cross_screen(ScreenPtr pScreen, Bool entering) static void xwl_pointer_warp_cursor(DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y) { + miPointerWarpCursor(pDev, pScreen, x, y); } static miPointerScreenFuncRec xwl_pointer_screen_funcs = {