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•6 years ago
|
| Assignee | ||
Comment 1•6 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•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Comment 3•6 years ago
|
||
| bugherder | ||
Description
•