Open Bug 605751 Opened 14 years ago Updated 2 years ago

Momentum scroll carries over between tabs

Categories

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

All
macOS
defect

Tracking

()

People

(Reporter: danne.da, Unassigned)

References

Details

User-Agent:       Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0b8pre) Gecko/20101019 Firefox/4.0b8pre
Build Identifier: 

When scrolling with momentum activated switching to another tab (or closing the current one) will cause the scrolling to continue in the new tab. This should not happen.

Reproducible: Always
Does Safari have the same bug?
Safari doesn't suffer from this bug, nor does any other tabbed application that I've used.
Relatedly, if you start a momentum scroll, and then while it's still scrolling hold down the Control key, you will get the page repeatedly zoomed in or out (depending on whether you scrolled up or down).  I found this happens if I'm doing a scroll and then I, say, go to press Control+Tab.
That's bug 574663, which I'll land today. The patch over there will give momentum scroll events an isMomentum flag which we can use in this bug.

We could fix this bug by ignoring momentum scroll events that would scroll a different nsIFrame than the one that was last scrolled by a non-momentum scroll event.
Status: UNCONFIRMED → NEW
Depends on: 574663
Ever confirmed: true
The momentum scroll will still happen even if it can't scroll anymore on the current page (no vertical scrollbar or at the bottom of the page). This carries over to another tab (or page zoom if the ctrl key is pressed).
(In reply to comment #4)
> We could fix this bug by ignoring momentum scroll events that would scroll a
> different nsIFrame than the one that was last scrolled by a non-momentum scroll
> event.

Masayuki, this should probably happen somewhere in nsMouseWheelTransaction, right? Do you want to implement this?
Repeating my comment from bug 549669 as it applies here too.

There are multiple points in time when we should "stop" any currently existing
momentum, such as when closing or switching tabs. Right now if you scroll on
one page and then quickly switch tabs using the keyboard things look very
strange.

Does the OS expose any APIs for clamping any currently existing momentum to 0?

Basically any time a key is pressed it would be nice to clamp. Of course, you
could definitely argue that the OS should do that.
Depends on: 669979
I think momentum scrolling should be canceled after the old transaction is finished. If nobody wants to take this bug, I'll take this.
Component: Widget: Cocoa → Widget: Gtk
# Oops, why was only component changed unintentionally?
Component: Widget: Gtk → Widget: Cocoa
Kinetic scrolling should stop when:
* switching tabs
* navigating between pages (bug 926386)
* using an absolute scrolling command (e.g. ⌘↑ “scroll to top”)
* scrolling to a specific location (e.g. clicking a scroll bar with the setting “jump to the spot that’s clicked”, or navigating to an anchor)
Priority: -- → P3
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.