WebKit Bugzilla
Attachment 372179 Details for
Bug 198879
: [LFC] Fix over-constrained logic for out-of-flow non-replaced horizontal geometry.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-198879-20190615001626.patch (text/plain), 3.96 KB, created by
zalan
on 2019-06-15 00:16:29 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
zalan
Created:
2019-06-15 00:16:29 PDT
Size:
3.96 KB
patch
obsolete
>Subversion Revision: 246456 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 3b7cc02b3599891fdef6749893e7c08987ff1a4e..b1333e26f6b7e30eed8e33e307580ebbd798e9d4 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,16 @@ >+2019-06-15 Zalan Bujtas <zalan@apple.com> >+ >+ [LFC] Fix over-constrained logic for out-of-flow non-replaced horizontal geometry. >+ https://bugs.webkit.org/show_bug.cgi?id=198879 >+ <rdar://problem/51772995> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ The over-constrained logic applies to the case when all the horizontal properties are set. >+ >+ * layout/FormattingContextGeometry.cpp: >+ (WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry): >+ > 2019-06-15 Zalan Bujtas <zalan@apple.com> > > [LFC] Convert both the absolutely and statically positioned out-of-flow block level boxes positions relative to the containing block's padding box >diff --git a/Source/WebCore/layout/FormattingContextGeometry.cpp b/Source/WebCore/layout/FormattingContextGeometry.cpp >index ffc5354a46318b786d5bb1e682805a307968c75d..1edbc01dbf8f9705533fc80eacadeceea6eaddb4 100644 >--- a/Source/WebCore/layout/FormattingContextGeometry.cpp >+++ b/Source/WebCore/layout/FormattingContextGeometry.cpp >@@ -466,25 +466,17 @@ HorizontalGeometry FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGe > } else if (!computedHorizontalMargin.start) { > usedHorizontalMargin.end = *computedHorizontalMargin.end; > usedHorizontalMargin.start = containingBlockWidth - (*left + borderLeft + paddingLeft + contentWidth() + paddingRight + borderRight + usedHorizontalMargin.end + *right); >- // Overconstrained? Ignore right (left). >- if (usedHorizontalMargin.start < 0) { >- if (isLeftToRightDirection) >- usedHorizontalMargin.start = containingBlockWidth - (*left + borderLeft + paddingLeft + contentWidth() + paddingRight + borderRight + usedHorizontalMargin.end); >- else >- usedHorizontalMargin.start = containingBlockWidth - (borderLeft + paddingLeft + contentWidth() + paddingRight + borderRight + usedHorizontalMargin.end + *right); >- } > } else if (!computedHorizontalMargin.end) { > usedHorizontalMargin.start = *computedHorizontalMargin.start; > usedHorizontalMargin.end = containingBlockWidth - (*left + usedHorizontalMargin.start + borderLeft + paddingLeft + contentWidth() + paddingRight + borderRight + *right); >- // Overconstrained? Ignore right (left). >- if (usedHorizontalMargin.end < 0) { >- if (isLeftToRightDirection) >- usedHorizontalMargin.end = containingBlockWidth - (*left + usedHorizontalMargin.start + borderLeft + paddingLeft + contentWidth() + paddingRight + borderRight); >- else >- usedHorizontalMargin.end = containingBlockWidth - (usedHorizontalMargin.start + borderLeft + paddingLeft + contentWidth() + paddingRight + borderRight + *right); >- } >- } else >+ } else { > usedHorizontalMargin = { *computedHorizontalMargin.start, *computedHorizontalMargin.end }; >+ // Overconstrained? Ignore right (left). >+ if (isLeftToRightDirection) >+ right = containingBlockWidth - (usedHorizontalMargin.start + *left + borderLeft + paddingLeft + contentWidth() + paddingRight + borderRight + usedHorizontalMargin.end); >+ else >+ left = containingBlockWidth - (usedHorizontalMargin.start + borderLeft + paddingLeft + contentWidth() + paddingRight + borderRight + usedHorizontalMargin.end + *right); >+ } > } else { > // Otherwise, set 'auto' values for 'margin-left' and 'margin-right' to 0, and pick the one of the following six rules that applies. > usedHorizontalMargin = { computedHorizontalMargin.start.valueOr(0), computedHorizontalMargin.end.valueOr(0) };
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
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 198879
: 372179