** Description changed: - A fix for QTBUG-40889 was worked out and submitted at + Mouse event compression stopped working in Qt 5, a regression from Qt 4: - https://codereview.qt-project.org/#/c/115531/ + https://bugreports.qt.io/browse/QTBUG-40889 - but due to coming in a bit late, was moved to Qt 5.6 + The bug was fixed in Qt 5.6 https://codereview.qt- + project.org/#/c/126136/ where it has been thoroughly tested by now. - https://codereview.qt-project.org/#/c/126136/ + Attached is a debdiff against 5.5.1+dfsg-16ubuntu7.2 which includes a + backport of the 5.6 patch (only one trivial hunk failed, which was + easily fixed). - The bug is about mouse motion event compression malfunctioning, and it - has grave consequences for some applications, where the flood of events - make rendering sluggish (e.g. anything based on VTK, but probably - others). + [Impact] - ParaView developer Ben Boeckel has tried the patch [2] against 5.5 and - confirmed it fixes rendering/interaction in VTK applications. + The bug affects any program that relies on the event compression Qt + normally does. For example, VTK programs (ParaView, Tomviz, ...) do + their rendering in response to mouse events during camera movements, and + with event compression at the Qt level suddenly gone, camera movements + become very slow, since the application is now flooded with mouse events + and the rendering lags behind. - It is not possible to work around the bug at the application level in a - satisfactory way, only by resorting to timer-based rendering. + The problem is not limited to these programs however; it can be observed + by simply putting two regular, slightly slow-to-render, widgets into a + QSplitter and moving the splitter handle. The result is a syrup-like + experience as the widgets try to keep up with the onslaught of resize + events due to the lack of mouse event compression. - I suggest an SRU to patch the Ubuntu Qt package with the patch that was - originally meant for the 5.x branch (first URL above). The patch was - later integrated in 5.6 where it has been well tested. + [Test Case] - [1] https://bugreports.qt.io/browse/QTBUG-40889 - [2] http://vtk.1045678.n5.nabble.com/Delayed-mouse-interaction-due-to-event-loop-bug-in-Qt5-tp5730474p5732870.html + The attached test application can be used to check if event compression + is functioning. It performs some artificial work on each mouse move and + prints a message. Click and drag the mouse a little. After releasing the + mouse, you'll notice that the printouts keeps coming for quite a while, + as the program is catching up with the flood of events. + + With the attached patch (and with Qt 4), the problem is gone - the mouse + event stream is compressed and the printouts are no longer lagging + behind. + + [Regression Potential] + + There's a small risk that some applications have made workarounds for + the faulty behavior, and that unwanted behavior is introduced if this + bug is fixed. But chances are high that such workarounds will keep + working, as the obvious workaround is to do timer based rendering + instead of event based. The workarounds will then simply become + unnecessary, but shouldn't cause problems. + + I'm asking for someone to nominate this bug for an SRU of 16.04 LTS.
** Attachment added: "Test case to demonstrate the bug" https://bugs.launchpad.net/ubuntu/+source/qtbase-opensource-src/+bug/1598173/+attachment/4841177/+files/qtbug40889.zip -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1598173 Title: Please consider SRU of "xcb: Compress mouse motion and touch update events" To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/qtbase-opensource-src/+bug/1598173/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
