Closed Bug 1063138 Opened 10 years ago Closed 10 years ago

[APZC] first tap after pinch-to-zoom is ignored

Categories

(Core :: Panning and Zooming, defect)

All
Gonk (Firefox OS)
defect
Not set
minor

Tracking

()

RESOLVED FIXED
2.1 S6 (10oct)
Tracking Status
firefox33 --- unaffected
firefox34 --- fixed
firefox35 --- fixed
b2g-v1.4 --- unaffected
b2g-v2.0 --- unaffected
b2g-v2.1 --- fixed
b2g-v2.2 --- fixed

People

(Reporter: djf, Assigned: kats)

Details

(Keywords: regression, Whiteboard: [priority])

Attachments

(2 files)

If I pinch to zoom in or out of the camera viewfinder then the next tap on the viewfinder is ignored.  If I want to take a picture I've got to tap twice. If I want to set the focus region I've got to tap twice. Same for flash mode, camera selector, menu button, and preview button. The only thing that works with one tap after a pinch gesture is the photo/video toggle slider thing (and I assume that is a big clue about what is going on.)

Taps following pinch-to-zoom gestures still work correctly in Gallery, so I don't think this is caused by any kind of system-wide changes to how touch events are delivered.
Justin: I'm guessing that this is one you'll want to take.

Note that this is only for pinch gestures. If I do a pinch to start zooming, then stop the pinch and use one finger to drag the zoom slider, the next tap will work correctly.
Flags: needinfo?(jdarcangelo)
Setting qawanted to find out if this bug affects other releases or if it is a more recent regression.
Keywords: qawanted
QA Contact: ychung
Hi David,

Could you tell me on which device, version and build you found this bug?
Flags: needinfo?(dflanagan)
Yeojin,

Sorry. This is on a Flame with today's nightly build. I've got it configured for 319mb I think, though I don't think that matters.
Flags: needinfo?(dflanagan)
This issue reproduces on the latest Flame 2.2, 2.1, and Open C 2.2:

Flame 2.2

Environmental Variables:
Device: Flame Master (512mb)
BuildID: 20140905090738
Gaia: 0de5fcdc11a15abdf8d64f28bed2abb30041ea4d
Gecko: 0d962e459db5
Version: 35.0a1 (Master) 
Firmware Version: v123
User Agent: Mozilla/5.0 (Mobile; rv:35.0) Gecko/35.0 Firefox/35.0

Flame 2.1

Environmental Variables:
Device: Flame 2.1 (512mb)
BuildID: 20140905134639
Gaia: abec74ccc792617e0d2fa5fa9490810555327003
Gecko: e74b772d7ac9
Version: 34.0a2 
Firmware Version: v123
User Agent: Mozilla/5.0 (Mobile; rv:34.0) Gecko/34.0 Firefox/34.0

Open C 2.2

Environmental Variables:
Device: Open_C Master
BuildID: 20140905090738
Gaia: 0de5fcdc11a15abdf8d64f28bed2abb30041ea4d
Gecko: 0d962e459db5
Version: 35.0a1 (Master) 
Firmware Version: P821A10V1.0.0B06_LOG_DL
User Agent: Mozilla/5.0 (Mobile; rv:35.0) Gecko/35.0 Firefox/35.0

The device does not respond to the first tap after pinch-to-zoom.
-----------------------------------
This issue does NOT reproduce on Flame 2.0, Flame 1.4:

Flame 2.0

Environmental Variables:
Device: Flame 2.0 (512mb)
BuildID: 20140905072212
Gaia: b8215807edfa25590c34625420741e7194d1d55e
Gecko: d03521aa4347
Version: 32.0 (2.0) 
Firmware Version: v123
User Agent: Mozilla/5.0 (Mobile; rv:32.0) Gecko/32.0 Firefox/32.0

Flame 1.4

Environmental Variables:
Device: Flame 1.4 (512mb)
Build ID: 20140905100238
Gaia: 2ee5b00bfbb8a67a967094804390b4afce8ecf54
Gecko: a3e8df746cd8
Version: 30.0 (1.4)
Firmware Version: v123
User Agent: Mozilla/5.0 (Mobile; rv:30.0) Gecko/30.0 Firefox/30.0

The device properly responds to the first tap after pinch-to-zoom.
QA Whiteboard: [QAnalyst-Triage?]
Flags: needinfo?(jmitchell)
Keywords: qawantedregression
triage - not nomming
QA Whiteboard: [QAnalyst-Triage?] → [QAnalyst-Triage+]
Flags: needinfo?(jmitchell)
Assignee: nobody → jdarcangelo
Flags: needinfo?(jdarcangelo)
Target Milestone: --- → 2.1 S4 (12sep)
QA Whiteboard: [QAnalyst-Triage+] → [QAnalyst-Triage+][lead-review+]
Severity: normal → minor
Target Milestone: 2.1 S4 (12sep) → 2.1 S5 (26sep)
Whiteboard: [priority]
Target Milestone: 2.1 S5 (26sep) → 2.1 S6 (10oct)
Assignee: jdarcangelo → nobody
Component: Gaia::Camera → Panning and Zooming
Product: Firefox OS → Core
Summary: [camera] first tap after pinch-to-zoom is ignored → [APZC] first tap after pinch-to-zoom is ignored
I've just verified that this is not specific to Camera's pinch-to-zoom. In fact, you can be in an app that doesn't have any sort of pinch-to-zoom behavior (e.g. Clock) and reproduce this.

STR:

1. Open Clock app
2. Perform a 'pinch-to-zoom' gesture anywhere on the screen (as if you were trying to zoom-in and out)
3. Attempt to tap on the tabs at the bottom to switch between them

The first "tap" on the tabs following the gesture will almost always be ignored.
Flags: needinfo?(bugmail.mozilla)
Can repro, thanks for the STR! I'm investigating...
Assignee: nobody → bugmail.mozilla
Flags: needinfo?(bugmail.mozilla)
OS: Mac OS X → Gonk (Firefox OS)
Hardware: x86 → All
The problem seems to be that in the period between the second finger going down, and the move distance being large enough to activate the pinch, the GEL returns nsEventStatus_eIgnore for the move events, so they get processed as moves in the TOUCHING state in the APZC instead. This creates a velocity in the APZC which then disallows the following tap. Patch coming in a sec.
Attached patch PatchSplinter Review
I think this is the incorrect bit; the APZC shouldn't be having to deal with move events once two fingers are down. If the user hasn't yet moved enough to activate a pinch, the events should just be ignored.
Attachment #8499647 - Flags: review?(botond)
Attachment #8499647 - Flags: review?(botond) → review+
Ran into these while building gtests for the above patch.
Attachment #8499670 - Flags: review?(botond)
Attachment #8499670 - Flags: review?(botond) → review+
https://hg.mozilla.org/mozilla-central/rev/e057f4f45d35
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Comment on attachment 8499647 [details] [diff] [review]
Patch

Approval Request Comment
[Feature/regressing bug #]: unsure
[User impact if declined]: in some cases the first click after doing a pinch-zoom action is ignored
[Describe test coverage new/current, TBPL]: local testing
[Risks and why]: low-risk; code is well understood and well contained. Affects B2G and metro only
[String/UUID change made/needed]: none
Attachment #8499647 - Flags: approval-mozilla-aurora?
Attachment #8499647 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
You need to log in before you can comment on or make changes to this bug.