Details
-
Bug
-
Resolution: Unresolved
-
P3: Somewhat important
-
None
-
6.2.1
Description
On X11 this is a relatively new feature; on other platforms maybe it has been happening for a while. Some Logitech mice with smooth-scrolling-capable wheels (like MX Master 2S and others) have fine-grained encoders that can send a lot of events with small angleDelta. In various places in widgets (at least QTabBar) we have code that just handles each QWheelEvent as if it was a full "click" of a clicky mouse wheel; but we may rather need to accumulate the deltas until a threshold of 120 is reached, to avoid reacting too soon; or else react in proportion to the angleDelta each time (i.e. scroll something by a shorter distance than we do for the usual 120 delta).
If the mouse provides pixelDelta but does not have the new PixelScroll flag, then we can consider the pixelDelta to be more synthetic in some sense, and perhaps rely only on angleDelta. (I'm not 100% sure about that.)
event->device()->capabilities().testFlag(QInputDevice::Capability::PixelScroll)
Likewise I think maybe WheelHandler is overreacting; needs investigation.
Attachments
Issue Links
- relates to
-
QTBUG-98348 xcb: scrolling devices don't have PixelScroll capability
- Reported
-
QTBUG-98349 need to get touchpad wheel events with ScrollPhase on X11 if possible
- Reported
-
QTBUG-123179 Incorrect combo box behavior while using high-resolution scroll mice
- Reported
Gerrit Reviews
For Gerrit Dashboard: QTBUG-97844 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
390211,8 | QTabBar: Improve scrolling with high resolution mouse wheels | dev | qt/qtbase | Status: MERGED | +2 | 0 |
391232,2 | QTabBar: Improve scrolling with high resolution mouse wheels | 6.3 | qt/qtbase | Status: MERGED | +2 | 0 |