Details
-
Task
-
Resolution: Done
-
P2: Important
-
5.6.0
-
60cd1c67759642018ef93cc45a90714729100d9d 28fab275033a6b4f8d6e78da0f729837144b0420 06713ded600d2d1fb5469dc31373a1878c366485
Description
In Qt4 there was a widget attribute for disabling motion event compression WA_NoX11EventCompression. This attribute is X11 specific thus only one of the supported platforms had this feature available.
There are use cases when event compression is not desirable, a quote from GTK+ docs:
Some types of applications, e.g. paint programs, need to see all motion events and will benefit from turning off event compression. [1]
Currently in Qt5 if you want to get uncompressed (all) events then you would need to use QAbstractNativeEventFilter. This is not very cross-platform, because you have to deal with native event types. The solution would be to add flags that could be used to disable compression for specific event types (only those that make sense), for example:
DontCompressMotion,
DontCompressTouch,
DontCompressAll
The question are:
- do we want to disable this for selected windows or for the whole QPA plugin?
- where the actual compression should take a place (it needs to work in both - in widget code and in qtquick code)?
[1] https://developer.gnome.org/gdk3/stable/gdk3-Windows.html#gdk-window-set-event-compression
Attachments
Issue Links
- is duplicated by
-
QTBUG-44293 It would be nice if we have an Api to compress custom events.
- Open
- relates to
-
QTBUG-2688 Suggestion: being able to compress custom QEvent.
- Reported
-
QTBUG-47464 Reduced frequency of QWidget::TabletEvent if calling update()
- Reported
-
QTBUG-60437 add full-featured Windows Ink support: generate QTabletEvents
- Closed
-
QTBUG-82056 Smarter mouse motion event compression in Qt
- Reported
-
QTBUG-1504 Allow disabling of compression for mouse
- Closed
- resulted from
-
QTBUG-40889 [Reg: 4->5] XCB: compression of mouse move events is flawed
- Closed
-
QTBUG-47069 On X11, if paint operations fall significantly behind, performance is trashed
- Closed
For Gerrit Dashboard: QTBUG-44964 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
156755,2 | add QT_XCB_NO_EVENT_COMPRESSION env var | 5.6 | qt/qtbase | Status: ABANDONED | +2 | 0 |
157011,5 | add AA_CompressHighFrequencyEvents to control compression on xcb | 5.7 | qt/qtbase | Status: MERGED | +2 | 0 |
157348,4 | xcb: don't compress tablet motion events | 5.6 | qt/qtbase | Status: MERGED | -2 | 0 |
192408,1 | xcb: Let AA_CompressHighFrequencyEvents actually compress tablet events | 5.9 | qt/qtbase | Status: ABANDONED | -1 | 0 |
192586,3 | Introducing AA_CompressTabletEvents | dev | qt/qtbase | Status: MERGED | +2 | 0 |
237627,5 | Windows QPA: Dispatch skipped touch/pen events if compression is off | 5.12 | qt/qtbase | Status: MERGED | -2 | 0 |