Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(264)

Unified Diff: third_party/WebKit/Source/core/layout/ScrollAnchor.cpp

Issue 1958973004: Always anchor to top of the anchor element (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: nit Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/layout/ScrollAnchor.cpp
diff --git a/third_party/WebKit/Source/core/layout/ScrollAnchor.cpp b/third_party/WebKit/Source/core/layout/ScrollAnchor.cpp
index 2d805f19d6f25979023b1f490169cb57cc4a0e4d..accc85d8707bf976fa10bb76cf973c2ec137fa69 100644
--- a/third_party/WebKit/Source/core/layout/ScrollAnchor.cpp
+++ b/third_party/WebKit/Source/core/layout/ScrollAnchor.cpp
@@ -48,16 +48,12 @@ static LayoutBoxItem scrollerLayoutBoxItem(const ScrollableArea* scroller)
return box;
}
-static Corner cornerFromCandidateRect(LayoutRect candidateRect, LayoutRect visibleRect)
+static Corner cornerFromCandidateRect(const LayoutObject* layoutObject)
{
- if (visibleRect.contains(candidateRect.minXMinYCorner()))
- return Corner::TopLeft;
- if (visibleRect.contains(candidateRect.maxXMinYCorner()))
+ ASSERT(layoutObject);
+ if (layoutObject->style()->isFlippedBlocksWritingMode()
+ || !layoutObject->style()->isLeftToRightDirection())
return Corner::TopRight;
- if (visibleRect.contains(candidateRect.minXMaxYCorner()))
- return Corner::BottomLeft;
- if (visibleRect.contains(candidateRect.maxXMaxYCorner()))
- return Corner::BottomRight;
return Corner::TopLeft;
}
@@ -66,8 +62,6 @@ static LayoutPoint cornerPointOfRect(LayoutRect rect, Corner whichCorner)
switch (whichCorner) {
case Corner::TopLeft: return rect.minXMinYCorner();
case Corner::TopRight: return rect.maxXMinYCorner();
- case Corner::BottomLeft: return rect.minXMaxYCorner();
- case Corner::BottomRight: return rect.maxXMaxYCorner();
}
ASSERT_NOT_REACHED();
return LayoutPoint();
@@ -127,7 +121,7 @@ ScrollAnchor::ExamineResult ScrollAnchor::examine(const LayoutObject* candidate)
if (occupiesSpace && visibleRect.intersects(candidateRect)) {
return ExamineResult(
visibleRect.contains(candidateRect) ? Return : Constrain,
- cornerFromCandidateRect(candidateRect, visibleRect));
+ cornerFromCandidateRect(candidate));
} else {
return ExamineResult(Skip);
}
« no previous file with comments | « third_party/WebKit/Source/core/layout/ScrollAnchor.h ('k') | third_party/WebKit/Source/core/layout/ScrollAnchorTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698