Open Bug 939250 Opened 11 years ago Updated 2 years ago

Swipe animation's event handler is too sensitive

Categories

(Core :: Widget: Cocoa, defect)

x86
macOS
defect

Tracking

()

People

(Reporter: ehsan.akhgari, Unassigned)

Details

I use an external Apple mouse which lets me scroll with one finger. Using Firefox with this setup is really painful, since with the slightest movement of my finger on the mouse, the page starts to move to the left or right, and I sometimes end up triggering back and forward by accident. I've tried to figure out what exactly Safari does to avoid this, and it seems to me like they have an initial horizontal movement grace distance before the swipe mode is activated, which lets people not trigger this by accident. Once the swipe mode kicks in though, Safari tracks the finger movement precisely. PS. What component do these bugs go into? :-)
(In reply to :Ehsan Akhgari (needinfo? me!) from comment #0) > I've tried to figure out what exactly Safari does to avoid this, and it > seems to me like they have an initial horizontal movement grace distance > before the swipe mode is activated, which lets people not trigger this by > accident. Once the swipe mode kicks in though, Safari tracks the finger > movement precisely. We have this too, just that we had to determine it experimentally [1]. It would be really helpful if you could adjust this for yourself and see what seems natural to you. I think I've been too close to the action to notice the differences myself... > PS. What component do these bugs go into? :-) I think these bugs can start in Core > Widget:Cocoa. If the patch turns out to be a front-end only change we can always move it to the Firefox Product. [1] http://mxr.mozilla.org/mozilla-central/source/widget/cocoa/nsChildView.mm#4199
Component: General → Widget: Cocoa
Flags: needinfo?(ehsan)
(In reply to Stephen Pohl [:spohl] from comment #1) > (In reply to :Ehsan Akhgari (needinfo? me!) from comment #0) > > I've tried to figure out what exactly Safari does to avoid this, and it > > seems to me like they have an initial horizontal movement grace distance > > before the swipe mode is activated, which lets people not trigger this by > > accident. Once the swipe mode kicks in though, Safari tracks the finger > > movement precisely. > > We have this too, just that we had to determine it experimentally [1]. It > would be really helpful if you could adjust this for yourself and see what > seems natural to you. I think I've been too close to the action to notice > the differences myself... Can we convert this heuristic info something controlled by prefs so that I don't need to rebuild in order to experiment with different values? (Also, the heuristic we have there is only useful when you're scrolling vertically isn't it? This bug mostly talks about when you're accidentally touching the touchpad so you may start moving your fingers horizontally. Safari seems to "wait" a bit before putting you into swipe mode.) > > PS. What component do these bugs go into? :-) > > I think these bugs can start in Core > Widget:Cocoa. If the patch turns out > to be a front-end only change we can always move it to the Firefox Product. Thanks!
Flags: needinfo?(ehsan)
Oh, I think I misunderstood the bug report: I thought you were referring to a tolerance between vertical and horizontal swiping. I now see that you're referring to a 'grace distance' for horizontal swiping alone. We can probably build in a similar tolerance and start the animation as soon as the page has overscrolled a certain amount.
(In reply to comment #3) > Oh, I think I misunderstood the bug report: I thought you were referring to a > tolerance between vertical and horizontal swiping. I now see that you're > referring to a 'grace distance' for horizontal swiping alone. We can probably > build in a similar tolerance and start the animation as soon as the page has > overscrolled a certain amount. Yes, that's exactly what I have in mind. Sorry for the vague description! :-)
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.