pinch end with focus point BothFingersLifted don't get a target apzc
Categories
(Core :: Panning and Zooming, defect, P3)
Tracking
()
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.
Assignee | ||
Comment 1•4 years ago
|
||
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.
Assignee | ||
Comment 2•4 years ago
|
||
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.
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Comment 3•4 years ago
|
||
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.
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Comment 4•4 years ago
|
||
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.
Assignee | ||
Comment 5•4 years ago
|
||
Depends on D74413
Assignee | ||
Comment 6•4 years ago
|
||
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
Updated•4 years ago
|
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
Comment 8•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/73fe01630c75
https://hg.mozilla.org/mozilla-central/rev/b4b3113b9b80
https://hg.mozilla.org/mozilla-central/rev/288a8a008fb8
Updated•4 years ago
|
Description
•