]> git.sesse.net Git - vlc/commitdiff
XCB: flush when changing the cursor
authorRémi Denis-Courmont <remi@remlab.net>
Sun, 29 May 2011 17:21:01 +0000 (20:21 +0300)
committerRémi Denis-Courmont <remi@remlab.net>
Sun, 29 May 2011 17:21:16 +0000 (20:21 +0300)
This should fix cursor (un)hiding with some OpenGL back-ends

modules/video_output/xcb/events.c
modules/video_output/xcb/glx.c
modules/video_output/xcb/x11.c
modules/video_output/xcb/xvideo.c

index e09c0cc9cf6c55b349d97bafd5c85f555ec140f6..e68a35e7e73b704284ac08c3b3f610f984848b81 100644 (file)
@@ -135,6 +135,7 @@ static void HandleMotionNotify (vout_display_t *vd, xcb_connection_t *conn,
     /* show the default cursor */
     xcb_change_window_attributes (conn, ev->event, XCB_CW_CURSOR,
                                   &(uint32_t) { XCB_CURSOR_NONE });
+    xcb_flush (conn);
 
     /* TODO it could be saved */
     vout_display_PlacePicture (&place, &vd->source, vd->cfg, false);
index d2861ea565046cf88ba71d022fd65aedb3deaa59..6d61b1eddac8a582b57ff748acc514769b5139a8 100644 (file)
@@ -553,10 +553,14 @@ static int Control (vout_display_t *vd, int query, va_list ap)
     /* Hide the mouse. It will be send when
      * vout_display_t::info.b_hide_mouse is false */
     case VOUT_DISPLAY_HIDE_MOUSE:
-        xcb_change_window_attributes (XGetXCBConnection (sys->display),
-                                      sys->embed->handle.xid,
+    {
+        xcb_connection_t *conn = XGetXCBConnection (sys->display);
+
+        xcb_change_window_attributes (conn, sys->embed->handle.xid,
                                     XCB_CW_CURSOR, &(uint32_t){ sys->cursor });
+        xcb_flush (conn);
         return VLC_SUCCESS;
+    }
 
     case VOUT_DISPLAY_GET_OPENGL:
     {
index 48dd7aadd7975111880854b9a21b3c60a1bac8ee..13758ea2edbe3bc090de7311447d8ab8c49dc3a2 100644 (file)
@@ -535,6 +535,7 @@ static int Control (vout_display_t *vd, int query, va_list ap)
     case VOUT_DISPLAY_HIDE_MOUSE:
         xcb_change_window_attributes (sys->conn, sys->embed->handle.xid,
                                   XCB_CW_CURSOR, &(uint32_t){ sys->cursor });
+        xcb_flush (sys->conn);
         return VLC_SUCCESS;
 
     default:
index 7d0041be5fbc7fc387db61b93929a2c8ff650107..b7e03391cef6d5f35b6e70d053662ebe2cee309a 100644 (file)
@@ -797,6 +797,7 @@ static int Control (vout_display_t *vd, int query, va_list ap)
     case VOUT_DISPLAY_HIDE_MOUSE:
         xcb_change_window_attributes (p_sys->conn, p_sys->embed->handle.xid,
                                   XCB_CW_CURSOR, &(uint32_t){ p_sys->cursor });
+        xcb_flush (p_sys->conn);
         return VLC_SUCCESS;
     case VOUT_DISPLAY_RESET_PICTURES:
         assert(0);