Prevented Xlib sequence errors in xcb plugin.
authorSamuel Rødal <samuel.rodal@nokia.com>
Tue, 29 Nov 2011 09:16:57 +0000 (10:16 +0100)
committerQt by Nokia <qt-info@nokia.com>
Tue, 29 Nov 2011 13:00:01 +0000 (14:00 +0100)
Prevent Xlib errors of the form
"Xlib: sequence lost (0x2716a > 0x1717c) in reply type 0x11!" from
being printed. We know the cause of these is because we're manually
calling the XESetWireToEvent handlers since those are not handled by
XCB, and this confuses Xlib since it's then seeing events with old
sequence numbers. We simply set the sequence number to the latest
sequence number and the errors go away.

Change-Id: I2a9e7a7cfd0ba8692e43ce61f796a8189305e0d3
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
src/plugins/platforms/xcb/qxcbconnection.cpp

index 15f6904..a5b8aa9 100644 (file)
@@ -566,6 +566,7 @@ void QXcbConnection::handleXcbEvent(xcb_generic_event_t *event)
         if (proc) {
             XESetWireToEvent((Display*)m_xlib_display, response_type, proc);
             XEvent dummy;
+            event->sequence = LastKnownRequestProcessed(m_xlib_display);
             proc((Display*)m_xlib_display, &dummy, (xEvent*)event);
         }
     }