Title: [274212] trunk/Source/WebCore
- Revision
- 274212
- Author
- [email protected]
- Date
- 2021-03-10 06:53:56 -0800 (Wed, 10 Mar 2021)
Log Message
[Multi-column] Adjust the flow state of the descendants when going from not-inside-flow to inside-flow
https://bugs.webkit.org/show_bug.cgi?id=222987
Reviewed by Antti Koivisto.
Sometimes the flow state could change even when the renderer stays out-of-flow (e.g when going from fixed to absolute and
the (new)containing block is inside a multi-column flow).
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::normalizeTreeAfterStyleChange):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (274211 => 274212)
--- trunk/Source/WebCore/ChangeLog 2021-03-10 14:46:02 UTC (rev 274211)
+++ trunk/Source/WebCore/ChangeLog 2021-03-10 14:53:56 UTC (rev 274212)
@@ -1,5 +1,18 @@
2021-03-10 Zalan Bujtas <[email protected]>
+ [Multi-column] Adjust the flow state of the descendants when going from not-inside-flow to inside-flow
+ https://bugs.webkit.org/show_bug.cgi?id=222987
+
+ Reviewed by Antti Koivisto.
+
+ Sometimes the flow state could change even when the renderer stays out-of-flow (e.g when going from fixed to absolute and
+ the (new)containing block is inside a multi-column flow).
+
+ * rendering/updating/RenderTreeBuilder.cpp:
+ (WebCore::RenderTreeBuilder::normalizeTreeAfterStyleChange):
+
+2021-03-10 Zalan Bujtas <[email protected]>
+
Clean up the text boxes when the associated text renderer is detached from the tree
https://bugs.webkit.org/show_bug.cgi?id=223009
<rdar://74788950>
Modified: trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp (274211 => 274212)
--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp 2021-03-10 14:46:02 UTC (rev 274211)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp 2021-03-10 14:53:56 UTC (rev 274212)
@@ -599,7 +599,17 @@
// Out of flow children of RenderMultiColumnFlow are not really part of the multicolumn flow. We need to ensure that changes in positioning like this
// trigger insertions into the multicolumn flow.
if (auto* enclosingFragmentedFlow = parent.enclosingFragmentedFlow(); is<RenderMultiColumnFlow>(enclosingFragmentedFlow)) {
- auto movingIntoMulticolumn = wasOutOfFlowPositioned && !isOutOfFlowPositioned;
+ auto movingIntoMulticolumn = [&] {
+ if (wasOutOfFlowPositioned && !isOutOfFlowPositioned)
+ return true;
+ if (auto* containingBlock = renderer.containingBlock(); containingBlock && isOutOfFlowPositioned) {
+ // Sometimes the flow state could change even when the renderer stays out-of-flow (e.g when going from fixed to absolute and
+ // the containing block is inside a multi-column flow).
+ return containingBlock->fragmentedFlowState() == RenderObject::InsideInFragmentedFlow
+ && renderer.fragmentedFlowState() == RenderObject::NotInsideFragmentedFlow;
+ }
+ return false;
+ }();
if (movingIntoMulticolumn) {
multiColumnBuilder().multiColumnDescendantInserted(downcast<RenderMultiColumnFlow>(*enclosingFragmentedFlow), renderer);
renderer.initializeFragmentedFlowStateOnInsertion();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes