Open Bug 1573188 Opened 5 years ago Updated 1 year ago

Touchpad inertial scrolling continues after navigation on Linux

Categories

(Core :: Panning and Zooming, defect, P3)

Unspecified
Linux
defect

Tracking

()

People

(Reporter: callahad, Unassigned)

References

Details

Steps to Reproduce:

  1. Visit a long page with several anchors. E.g, https://html.spec.whatwg.org/multipage/introduction.html#introduction
  2. Flick the trackpad to begin scrolling, allowing the page to continue scrolling with inertia.
  3. While the page is scrolling, press Ctrl-L + Return to navigate back to the #introduction anchor.

What Should Happen:

  • The page scrolls to the anchor and stays there.

What Actually Happens:

  • The page jumps up to the anchor, and then continues scrolling itself with the previous inertia.

This seems to only be the case on Linux. I have set MOZ_USE_XINPUT2=1 in my environment. Firefox is running in Gnome, under XWayland.

[Environment:]

Firefox Release 68.0.2 - 20190813150448
Firefox Beta 69.0b14 - 20190815163925
Nightly 70.0a1 - 20190818215144

Hi,
I didn't managed to reproduce this issue on Ubuntu 18 with Wayland with the firefox versions mentioned above, because inertial scrolling and shortcut are working but only separately(inertial scrolling or shorcut) not both. I will set the following component Core Panning and Zooming. Can you please tell me if you have any extra settings?

Component: Untriaged → Panning and Zooming
Flags: needinfo?(dan.callahan)
Product: Firefox → Core

I incorrectly reported my Wayland configuration; turns out I was using Gnome on Xorg, not Wayland.

I am able to reproduce this in a completely new profile with default settings under two conditions:

  • Gnome Xorg session with MOZ_USE_XINPUT2=1
  • Gnome Wayland session with MOZ_ENABLE_WAYLAND=1

I'm running NixOS, but using Mozilla's official builds of Nightly.

Flags: needinfo?(dan.callahan)
Status: NEW → UNCONFIRMED
Ever confirmed: false

Apologize for the status changes to unconfirmed. According to the comment 2 I will set the status New. I tried with set up in terminal for Wayland:
MOZ_ENABLE_WAYLAND=1 but doesn't work for me > inertial scrolling and shortcut are working but only separately, not both. I don't have Gnome on Xorg configuration to test this.

Status: UNCONFIRMED → NEW
Ever confirmed: true

I can reproduce this on Linux (on Xorg with MOZ_USE_XINPUT2=1).

Linux just recently got inertial scrolling at all (bug 1213601), and it has had this behaviour from the outset.

Note that there is platform divergence in behaviour beyond Linux:

  • on Windows, inertial scrolling stops as soon as Ctrl+L is pressed
  • on Mac, inertial scrolling stops after Return is pressed
  • on Linux, it doesn't stop at all (this bug)

Linux's handling of two-finger trackpad gestures is closer to Mac's (they both use PanGestureEvents), though on Linux we implement the inertial scroll animation ourselves, while on Mac the OS sends events for it.

The next step here would be to understand how the navigation causes the inertial scroll to stop on Mac, and then see if we can implement some logic to replicate that behaviour on Linux. Note that we can't just stop the inertial scroll in response to any scrolling, as we explicitly decided not to do that (bug 1474196).

Priority: -- → P3
Depends on: 1213601

This might be implicit in the original report, but just in case: any kind of navigation within the same page, not just from the navigation bar, seems to conserve momentum. I can cause this behavior by clicking the back and forward buttons, by using the keyboard shortcuts for back and forward, and even by pressing Enter with the focus on a hyperlink (though not by clicking on such a link; clicks on the page itself do kill the momentum).

Similarly, using the keyboard arrows to scroll probably also should interrupt an inertial scroll in progress, but it doesn't; it just causes a brief jerk as the key press has its usual effect and then the inertial scroll continues with its momentum unchanged.

(I'm also running on Linux/Xorg/XI2.)

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