X-Git-Url: https://git.webkit.org/?p=WebKit-https.git;a=blobdiff_plain;f=Source%2FWebCore%2Fpage%2FFrameView.cpp;h=9ca1ff2eb3f9dbc2405638a9e5601d68b40e373e;hp=f07cc4e7c59782dff9a5a07852a0018f720aa037;hb=73e822fb44595f3b6ee308ab7dfdc93a3099cc31;hpb=5c6acdd5a3ce22590389bb387de6963804a34291 diff --git a/Source/WebCore/page/FrameView.cpp b/Source/WebCore/page/FrameView.cpp index f07cc4e7c597..9ca1ff2eb3f9 100644 --- a/Source/WebCore/page/FrameView.cpp +++ b/Source/WebCore/page/FrameView.cpp @@ -2791,7 +2791,12 @@ void FrameView::scrollToAnchor() // Scroll nested layers and frames to reveal the anchor. // Align to the top and to the closest side (this matches other browsers). - anchorNode->renderer()->scrollRectToVisible(rect, ScrollAlignment::alignToEdgeIfNeeded, ScrollAlignment::alignTopAlways); + if (anchorNode->renderer()->style().isHorizontalWritingMode()) + anchorNode->renderer()->scrollRectToVisible(rect, ScrollAlignment::alignToEdgeIfNeeded, ScrollAlignment::alignTopAlways); + else if (anchorNode->renderer()->style().isFlippedBlocksWritingMode()) + anchorNode->renderer()->scrollRectToVisible(rect, ScrollAlignment::alignRightAlways, ScrollAlignment::alignToEdgeIfNeeded); + else + anchorNode->renderer()->scrollRectToVisible(rect, ScrollAlignment::alignLeftAlways, ScrollAlignment::alignToEdgeIfNeeded); if (AXObjectCache* cache = frame().document()->existingAXObjectCache()) cache->handleScrolledToAnchor(anchorNode.get());