Bug 1789464 - Resolve logical axes in PresShell::ScrollFrameIntoView according to the target's writing mode. r=emilio

Differential Revision: https://phabricator.services.mozilla.com/D239516
This commit is contained in:
Jonathan Kew
2025-02-25 17:12:58 +00:00
parent 73b1aaf20a
commit b56aae5bc5
13 changed files with 44 additions and 191 deletions

View File

@@ -805,15 +805,15 @@ void Element::ScrollIntoView(const ScrollIntoViewOptions& aOptions) {
const auto block = ToWhereToScroll(aOptions.mBlock);
const auto inline_ = ToWhereToScroll(aOptions.mInline);
ScrollFlags scrollFlags =
ScrollFlags::ScrollOverflowHidden | ScrollFlags::TriggeredByScript;
ScrollFlags scrollFlags = ScrollFlags::ScrollOverflowHidden |
ScrollFlags::TriggeredByScript |
ScrollFlags::AxesAreLogical;
if (aOptions.mBehavior == ScrollBehavior::Smooth) {
scrollFlags |= ScrollFlags::ScrollSmooth;
} else if (aOptions.mBehavior == ScrollBehavior::Auto) {
scrollFlags |= ScrollFlags::ScrollSmoothAuto;
}
// TODO: Propagate whether the axes are logical or not down (via scrollflags).
presShell->ScrollContentIntoView(
this, ScrollAxis(block, WhenToScroll::Always),
ScrollAxis(inline_, WhenToScroll::Always), scrollFlags);