Do not disable APZ when the selection is on nomal position: static elements while pinch-zooming
Categories
(Core :: DOM: Selection, defect, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox74 | --- | fixed |
People
(Reporter: TYLin, Assigned: TYLin)
References
Details
Attachments
(1 file)
Bug 1526268 designed a mechanism that APZ is disabled when AccessibleCaret is in a position:fixed
subtree or when its position is changed. In particular, APZ is disabled whenever mIsCaretPositionChanged
is true [1]. (See [2] for a more detailed rational)
mIsCaretPositionChanged
is updated in when one of the AccessibleCaret has PositionChangedResult::Changed
[3]. However, PositionChangedResult::Changed
is true when the position is the same, but the zoom level is changed [4]. That's why Bug 1610960 happens that APZ is disabled when pinch-zooming while the selection is on normal position:static
text.
[1] https://searchfox.org/mozilla-central/rev/2e355fa82aaa87e8424a9927c8136be184eeb6c7/layout/base/AccessibleCaretManager.cpp#372
[2] https://phabricator.services.mozilla.com/D51351?id=184974#inline-312215
[3] https://searchfox.org/mozilla-central/rev/2e355fa82aaa87e8424a9927c8136be184eeb6c7/layout/base/AccessibleCaretManager.cpp#335-337
[4] https://searchfox.org/mozilla-central/rev/2e355fa82aaa87e8424a9927c8136be184eeb6c7/layout/base/AccessibleCaret.cpp#265,280
Assignee | ||
Updated•5 years ago
|
Assignee | ||
Comment 1•5 years ago
|
||
mIsCaretPositionChanged
is used in UpdateShouldDisableApz()
to
determine whether to disable APZ during scrolling or pinch-zooming.
Suppose the selection is on position:static elements. When
pinch-zooming, the zoom level is changed, but the position is not. We
split PositionChangedResult::Changed
into two separate states, and set
mIsCaretPositionChanged
only when the position is changed, not when
the zoom level is changed.
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Comment 3•5 years ago
|
||
bugherder |
Description
•