Details
-
Bug
-
Resolution: Out of scope
-
P2: Important
-
5.2.0
-
None
-
XCB
Description
Run the attached example on X with Qt 4.8 and 5.2. Try to move the MDI subwindows with the mouse. The main thread is blocked periodically. The performance will be bad but other than that the app should function properly.
On Qt 4 there is no problem. On Qt 5.2 however, with xcb, the motion events received during moving the subwindows often contain bogus local coordinates (event_x, event_y). The global coordinates (root_x, root_y) are always correct. The end result is that the subwindows are jumping to "random" x and y positions in the -64k..64k range.
It works properly on other platforms (Windows) so this must be specific to xcb. The key is to keep the main thread blocked for most of the time.
This is important because this is exactly what will happen when GL-based QWindows (or QGLWidgets) are added into a QMdiArea and sync to vblank is enabled and swapBuffers() is called on the main thread.