Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-35026

[REG] XCB: MDI subwindows cannot be moved properly when the main thread is busy

    XMLWordPrintable

Details

    • Bug
    • Resolution: Out of scope
    • P2: Important
    • 5.3.0
    • 5.2.0
    • GUI: Window management
    • 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.

      Attachments

        1. main.cpp
          1 kB
        2. qtbug35026.zip
          0.8 kB
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            lagocs Laszlo Agocs
            lagocs Laszlo Agocs
            Votes:
            3 Vote for this issue
            Watchers:
            8 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes