WebKit Bugzilla
Attachment 343498 Details for
Bug 186999
: [LFC] Adjust static position with containing block's content box top/left
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-186999-20180625075610.patch (text/plain), 4.10 KB, created by
zalan
on 2018-06-25 07:56:11 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
zalan
Created:
2018-06-25 07:56:11 PDT
Size:
4.10 KB
patch
obsolete
>Subversion Revision: 233126 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 3f45d9ce0a3cc9fddc318f4fa9b6a9d59414f09e..ac1e0f7dbd11083c466be89fb091b82d573cd81b 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,18 @@ >+2018-06-25 Zalan Bujtas <zalan@apple.com> >+ >+ [LFC] Adjust static position with containing block's content box top/left >+ https://bugs.webkit.org/show_bug.cgi?id=186999 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * layout/blockformatting/BlockFormattingContextGeometry.cpp: >+ (WebCore::Layout::BlockFormattingContext::Geometry::staticPosition): >+ * layout/displaytree/DisplayBox.cpp: >+ (WebCore::Display::Box::contentBox const): >+ * layout/displaytree/DisplayBox.h: >+ (WebCore::Display::Box::contentBoxTop const): >+ (WebCore::Display::Box::contentBoxLeft const): >+ > 2018-06-23 Zalan Bujtas <zalan@apple.com> > > [LFC] Relatively positioned renderer needs offsetting for validation >diff --git a/Source/WebCore/layout/blockformatting/BlockFormattingContextGeometry.cpp b/Source/WebCore/layout/blockformatting/BlockFormattingContextGeometry.cpp >index 1ff34f0ea1e816cf36d69e46fcbe96a2fabfd471..5b71b49a3bf523a776c93214dfdb2fe831cd8324 100644 >--- a/Source/WebCore/layout/blockformatting/BlockFormattingContextGeometry.cpp >+++ b/Source/WebCore/layout/blockformatting/BlockFormattingContextGeometry.cpp >@@ -270,13 +270,14 @@ FormattingContext::Geometry::Position BlockFormattingContext::Geometry::staticPo > // Vertical margins between adjacent block-level boxes in a block formatting context collapse. > // In a block formatting context, each box's left outer edge touches the left edge of the containing block (for right-to-left formatting, right edges touch). > >- // Start from the top of the container's content box. >- LayoutUnit top = { }; >- LayoutUnit left = { }; >+ auto& containingBlockDisplayBox = *layoutContext.displayBoxForLayoutBox(*layoutBox.containingBlock()); >+ LayoutUnit top; > if (auto* previousInFlowSibling = layoutBox.previousInFlowSibling()) { > auto& previousInFlowDisplayBox = *layoutContext.displayBoxForLayoutBox(*previousInFlowSibling); > top = previousInFlowDisplayBox.bottom() + previousInFlowDisplayBox.marginBottom(); >- } >+ } else >+ top = containingBlockDisplayBox.contentBoxTop(); >+ auto left = containingBlockDisplayBox.contentBoxLeft(); > LOG_WITH_STREAM(FormattingContextLayout, stream << "[Position] -> static -> top(" << top << "px) left(" << left << "px) layoutBox(" << &layoutBox << ")"); > return { left, top }; > } >diff --git a/Source/WebCore/layout/displaytree/DisplayBox.cpp b/Source/WebCore/layout/displaytree/DisplayBox.cpp >index 505da27b9f6d35b526dbb6d397a2a6d4d83509c5..2bcc6f4aece7712b9a54ea94ede50a3f3fa61019 100644 >--- a/Source/WebCore/layout/displaytree/DisplayBox.cpp >+++ b/Source/WebCore/layout/displaytree/DisplayBox.cpp >@@ -84,13 +84,11 @@ Box::Rect Box::paddingBox() const > > Box::Rect Box::contentBox() const > { >- auto paddingBox = this->paddingBox(); >- > Rect contentBox; >- contentBox.setTop(paddingBox.top() + paddingTop()); >- contentBox.setLeft(paddingBox.left() + paddingLeft()); >- contentBox.setWidth(m_contentWidth); >- contentBox.setHeight(m_contentHeight); >+ contentBox.setTop(contentBoxTop()); >+ contentBox.setLeft(contentBoxLeft()); >+ contentBox.setWidth(contentBoxWidth()); >+ contentBox.setHeight(contentBoxHeight()); > return contentBox; > } > >diff --git a/Source/WebCore/layout/displaytree/DisplayBox.h b/Source/WebCore/layout/displaytree/DisplayBox.h >index 359c72d70cbe18e096367bc4852c74058728b715..ba2d866a1a21be4b54acaf9ba64428c631838788 100644 >--- a/Source/WebCore/layout/displaytree/DisplayBox.h >+++ b/Source/WebCore/layout/displaytree/DisplayBox.h >@@ -141,6 +141,8 @@ public: > LayoutUnit paddingBottom() const; > LayoutUnit paddingRight() const; > >+ LayoutUnit contentBoxTop() const { return borderTop() + paddingTop(); } >+ LayoutUnit contentBoxLeft() const { return borderLeft() + paddingLeft(); } > LayoutUnit contentBoxHeight() const; > LayoutUnit contentBoxWidth() const; >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
koivisto
:
review+
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 186999
: 343498