Defect - Enable horizontal scrolling with swipes that begin over a tile

VERIFIED FIXED in Firefox 25

Status

P2
normal
VERIFIED FIXED
5 years ago
5 years ago

People

(Reporter: fryn, Assigned: sfoster)

Tracking

Trunk
Firefox 25
x86_64
Windows 8

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: feature=defect c=tbd u=tbd p=2 status=verified)

Attachments

(1 attachment)

(Reporter)

Description

5 years ago
Enable horizontal scrolling with swipes beginning on top of tiles.

Notes from IRC:

Frank:
When horizontally swiping on the start screen with the swipe starting on top of a tile, the start screen doesn't scroll, but to the user, it's not clear why that's happening. At some point, we should fix that to enable scrolling of the start screen as long as the swipe does not initially move much in the vertical axis (matching OS start screen behavior).

Sam:
I don't know off the top of my head how to rearrange it to fix it, but we know fairly quickly that its not a cross-slide so we can at least allow events through to trigger swiping at that point
I think the selection threshold is about 20px. We can bail on the cross-slide at that point

Updated

5 years ago
Blocks: 859003
Whiteboard: feature=defect c=tbd u=tbd p=0
(Reporter)

Updated

5 years ago
Summary: Defect - Enable horizontal scrolling with swipes beginning on top of tiles → Defect - Enable horizontal scrolling with swipes that begin over a tile

Updated

5 years ago
Priority: -- → P2
(Assignee)

Comment 1

5 years ago
Created attachment 769851 [details] [diff] [review]
Move/remove stopPropagation in CrossSlide

There as some overzealous stopPropagation going on. This patch fixes it so only stopPropagation on the touch/mouse move event only happens when it is confirmed to be part of an active cross-slide. Which I think is the right thing to do.

This was affecting both horizontal and vertically-oriented grids btw, so blocking my work on snapped view.
Assignee: nobody → sfoster
Attachment #769851 - Flags: review?(fryn)
(Reporter)

Comment 2

5 years ago
Comment on attachment 769851 [details] [diff] [review]
Move/remove stopPropagation in CrossSlide

Review of attachment 769851 [details] [diff] [review]:
-----------------------------------------------------------------

Yay! :D

While dragging vertically with relatively small horizontal movement, we still need to prevent panning otherwise the Firefox start screen will pan unexpectedly.
To see what I mean, go to the OS start screen swipe from the right and tap "search" and try "cross-sliding" to select tiles. The screen does not pan during the cross slide even when the slide is sloppy. We need to fix this, but it can be done in a follow-up.
Attachment #769851 - Flags: review?(fryn) → review+
(Reporter)

Comment 3

5 years ago
There seem to be two thresholds:
- Moving a finger less than a certain pixels in any direction from the touch's start position registers as a tap upon release. Within this threshold, no screen panning occurs.
- Moving a finger within ~22.5° of straight downwards or upwards with a distance beyond the above threshold registers as the beginning of a cross-slide after which no screen panning occurs even if the touch deviates from being vertical.
(Assignee)

Comment 4

5 years ago
We dont have the cross-slide and pan/scroll code well integrated. On the cross-slide side I have these thresholds implemented already (except I use up 45° deviation from the cross-scroll-axis to define the cone for registering a cross-slide). I may not have the logic right though - as to when to consume the event and block scrolling/panning. Currently I assume a series of touch/mouse move events is *not* a cross-slide until the minimum threshold is passed and conditions met. That means those events are free to propagate and get handled by whatever - including the scroll/pan code.
(Assignee)

Comment 5

5 years ago
point estimate=2

Updated

5 years ago
Blocks: 882638
No longer blocks: 859003
Status: NEW → ASSIGNED
QA Contact: jbecerra
Whiteboard: feature=defect c=tbd u=tbd p=0 → feature=defect c=tbd u=tbd p=2
(Assignee)

Comment 6

5 years ago
I was able to simplify the patch a bit further. Carrying r+ from fryn. Lets file follow-ups for any further, specific issues in the drag/cross-gesture behavior. 

on inbound: https://hg.mozilla.org/integration/mozilla-inbound/rev/077d1f98d00f
https://hg.mozilla.org/mozilla-central/rev/077d1f98d00f
Status: ASSIGNED → RESOLVED
Last Resolved: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 25
Tested on 2013-07-17 using latest nightly.

- I tested horizontal scrolling initiated over a tile, in fullscreen and fill views, as well as with different screen orientation. Tiles still flicker, but that's a different bug.
Status: RESOLVED → VERIFIED
Whiteboard: feature=defect c=tbd u=tbd p=2 → feature=defect c=tbd u=tbd p=2 status=verified
User Agent: Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:26.0) Gecko/20100101 Firefox/26.0
Build ID: 20130806104538
Built from http://hg.mozilla.org/mozilla-central/rev/1e381c91885d

WFM
Tested on windows 8 using latest nightly. 
tested horizontal scrolling initiated over a tile, in full-screen and fill views, as well as with different screen orientation. I can scroll tiles.
User Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0
Build ID: 20130816030205
Built from http://hg.mozilla.org/mozilla-central/rev/1ed5a88cd4d0

WFM
Tested on windows 8 using latest nightly for iteration-12. 
Tested horizontal scrolling initiated over a tile, in full-screen and fill views, as well as with different screen orientation. I can scroll tiles
You need to log in before you can comment on or make changes to this bug.