xserver: Branch 'master'

Adam Jackson ajax at kemper.freedesktop.org
Mon Feb 8 23:09:59 CET 2016


 hw/xwayland/xwayland-input.c |   10 ++++++++++
 1 file changed, 10 insertions(+)

New commits:
commit 87d5534f701242d7c23aa20545a6292a0779c89c
Author: Rui Matos <tiagomatos at gmail.com>
Date:   Wed Feb 3 16:14:09 2016 +0100

    xwayland: Clear pending cursor frame callbacks on pointer enter
    
    The last cursor frame we commited before the pointer left one of our
    surfaces might not have been shown. In that case we'll have a cursor
    surface frame callback pending which we need to clear so that we can
    continue submitting new cursor frames.
    
    Signed-off-by: Rui Matos <tiagomatos at gmail.com>
    Reviewed-by: Bryce Harrington <bryce at osg.samsung.com>
    Acked-by: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
    Reviewed-by: Daniel Stone <daniels at collabora.com>
    Reviewed-by: Jonas Ã…dahl <jadahl at gmail.com>

diff --git a/hw/xwayland/xwayland-input.c b/hw/xwayland/xwayland-input.c
index 61ca70b..f9e3255 100644
--- a/hw/xwayland/xwayland-input.c
+++ b/hw/xwayland/xwayland-input.c
@@ -267,6 +267,16 @@ pointer_handle_enter(void *data, struct wl_pointer *pointer,
     for (i = 0; i < dev->button->numButtons; i++)
         if (BitIsOn(dev->button->down, i))
             QueuePointerEvents(dev, ButtonRelease, i, 0, &mask);
+
+    /* The last cursor frame we commited before the pointer left one
+     * of our surfaces might not have been shown. In that case we'll
+     * have a cursor surface frame callback pending which we need to
+     * clear so that we can continue submitting new cursor frames. */
+    if (xwl_seat->cursor_frame_cb) {
+        wl_callback_destroy(xwl_seat->cursor_frame_cb);
+        xwl_seat->cursor_frame_cb = NULL;
+        xwl_seat_set_cursor(xwl_seat);
+    }
 }
 
 static void


More information about the xorg-commit mailing list