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

[Reg: 4->5] XCB: compression of mouse move events is flawed

    XMLWordPrintable

Details

    Description

      In Windows main QT loop will peeke WM_MOUSEMOVE event, the event is then pushed to windowSystemEventQueue and handled in separate (WM_USER+1) message. This means there might be multiple WM_MOUSEMOVE events pushed to windowSystemEventQueue before mouse move event is handled in (WM_USER+1).

      Mouse move events should be dequeued from system message que (compressed) before mouse move event is handled in (WM_USER+1) message.

      Another option is to compress all mouse move events in windowSystemEventQueue. I am attaching proposed patch (against qt 5.2.1).

      Attached example reproduces the issue:
      Run it with Qt5, click and move your mouse for few second and wait. You will see in the standard output: that the command will be executed several time. The same example on Qt4. You will see less output.

      For similar mouse move:
      Output In Qt4:
      do something 0
      do something 13

      Output in Qt5:
      do something 0
      do something 1
      do something 2
      ...
      ...
      do something 12
      do something 13

      Attachments

        1. compressMouse-52.patch
          2 kB
        2. qtbug40889.zip
          2 kB
        3. qtbug-40889.zip
          256 kB

        Issue Links

          For Gerrit Dashboard: QTBUG-40889
          # Subject Branch Project Status CR V

          Activity

            People

              paeglis Gatis Paeglis
              butalc Gasper Lah
              Votes:
              8 Vote for this issue
              Watchers:
              17 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes