Closed Bug 1632293 Opened 4 years ago Closed 4 years ago

pinch end with focus point BothFingersLifted don't get a target apzc

Categories

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

defect

Tracking

()

RESOLVED FIXED
mozilla78
Tracking Status
firefox75 --- wontfix
firefox76 --- wontfix
firefox77 --- wontfix
firefox78 --- fixed

People

(Reporter: tnikkel, Assigned: kats)

References

(Blocks 1 open bug)

Details

(Whiteboard: [apz:dtz:1:S])

Attachments

(3 files)

BothFingersLifted is -1,-1, so the hittest finds nothing and the input data gets ignored. Instead we should use a bool on the pinch gesture input data and pass the actual coordinates.

Specifically, the hit-test at https://searchfox.org/mozilla-central/rev/41c3ea3ee8eab9ce7b82932257cb80b703cbba67/gfx/layers/apz/src/APZCTreeManager.cpp#1753 - this gets triggered when code outside APZ (e.g. the widget) dispatches PinchGestureInput events to APZ. When GestureEventListener creates PinchGestureInputs it will send them directly to the target APZC and this problem doesn't happen.

Priority: -- → P3

Also to be clear: there's not much in the way of user-observable failure from this defect, but it's something that would be good to fix as it may cause problems down the road.

Actually, there is a user-observable effect (I presume) from this: after completing a pinch, the overlay scrollbars on mac don't disappear because the APZC remains in a "transforming" state.

Severity: S4 → S3
Assignee: nobody → kats

This is mostly unrelated, but I considered reusing this variable for the
pinch gesture block before deciding it was too risky because some platforms
may have pinch and touch input blocks active concurrently. However the name
and documentation are kind of misleading so I figured I'd fix it while here.

This saves the focus point from pinch inputs on the pinch gesture block, and
then uses the last known focus point for doing the hit-test. This way we find
a reasonable APZC and can dispatch the pinch-end input properly.

Depends on D74414

Attachment #9146808 - Attachment description: Bug 1632293 - Use the last-known focus point for hit-testing BothFingersLifted inputs. r?botond → Bug 1632293 - Replace the BothFingersLifted() special case behaviour with a new pinch input type. r?botond,tnikkel
Pushed by kgupta@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/73fe01630c75
Rename mApzcForInputBlock to mApzcForTouchBlock. r=botond
https://hg.mozilla.org/integration/autoland/rev/b4b3113b9b80
Make InputQueue logging a bit more detailed. r=botond
https://hg.mozilla.org/integration/autoland/rev/288a8a008fb8
Replace the BothFingersLifted() special case behaviour with a new pinch input type. r=tnikkel,botond
Whiteboard: [apz:dtz:1:S]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: