Open Bug 1193202 Opened 9 years ago Updated 2 years ago

Disable smooth scrolling on devices that use precision trackpads

Categories

(Core :: Widget: Win32, defect, P3)

40 Branch
Unspecified
Windows
defect

Tracking

()

People

(Reporter: phlsa, Unassigned)

References

(Blocks 1 open bug)

Details

(Whiteboard: tpi:+)

As noted in bug 1166734, the scroll performance of Firefox is far worse than Edge (or even Chrome) on devices that are using a precision trackpad.

One way to mitigate this is to turn off smooth scrolling, which makes the trackpad feel more responsive in Firefox.

I can't speak to non-precision trackpads, but perhaps this would be something we should consider doing in general...
We've already discussed how to handle WM_MOUSEWHEEL and WM_MOUSEHWHEEL messages at implementing scroll speed acceleration. However, nobody had an idea how to distinguish specific pointing devices.
Not frontend -> moving to core for triage.
Component: General → Untriaged
Product: Firefox → Core
Using the Direct Manipulation API might help here, if it's something that's available on these precision trackpads. But otherwise this seems like it belongs in windows widget code, because it's windows-specific behaviour. It interacts with APZ tangentially, but it's the widget code that generates the input events so that's where I'd start. If we change the wheel events to be pixel type instead of line or page type, then APZ will switch from smooth to instant scrolling for them.
Component: Untriaged → Widget: Win32
Depends on: 890878
Whiteboard: tpi:?
Whiteboard: tpi:? → tpi:+
Moving to p3 because no activity for at least 1 year(s).
See https://github.com/mozilla/bug-handling/blob/master/policy/triage-bugzilla.md#how-do-you-triage for more information
Priority: P2 → P3

(In reply to Masayuki Nakano [:masayuki] (he/him)(JST, +0900) from comment #1)

We've already discussed how to handle WM_MOUSEWHEEL and WM_MOUSEHWHEEL
messages at implementing scroll speed acceleration. However, nobody had an
idea how to distinguish specific pointing devices.

I think we can do this. The delta of the mousewhell msg will be a multiple of 120 for non-precision devices, on a precision touch pad I see deltas of 3. So potentially we could treat mousewheel msgs with delta < 120 as precision.

Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.