Log Message
[New Multicolumn] Writing mode changes on the <html> and RenderView need to be propagated to column sets and flow thread children of those renderers. https://bugs.webkit.org/show_bug.cgi?id=134121 <rdar://problem/16884527>
Reviewed by Dean Jackson. Source/WebCore: Added fast/multicol/pagination/RightToLeft-rl-dynamic.html * rendering/RenderBlockFlow.cpp: (WebCore::RenderBlockFlow::styleDidChange): Refactor the propagation code for column sets and flow thread styles into a helper function that is called here. (WebCore::RenderBlockFlow::updateStylesForColumnChildren): * rendering/RenderBlockFlow.h: Add a new helper function for recalculating the styles of the column sets and flow thread in response to changes. * rendering/RenderBox.cpp: (WebCore::RenderBox::styleDidChange): When the style is changed for a root element or the RenderView in response to writing mode and direction changes, make sure that style gets propagated to the column children by calling the new helper function. LayoutTests: * fast/multicol/pagination/RightToLeft-rl-dynamic.html: Added. * platform/mac/fast/multicol/pagination/BottomToTop-bt-expected.png: * platform/mac/fast/multicol/pagination/BottomToTop-lr-expected.png: * platform/mac/fast/multicol/pagination/BottomToTop-rl-expected.png: * platform/mac/fast/multicol/pagination/BottomToTop-tb-expected.png: * platform/mac/fast/multicol/pagination/LeftToRight-bt-expected.png: * platform/mac/fast/multicol/pagination/LeftToRight-lr-expected.png: * platform/mac/fast/multicol/pagination/LeftToRight-rl-expected.png: * platform/mac/fast/multicol/pagination/LeftToRight-tb-expected.png: * platform/mac/fast/multicol/pagination/RightToLeft-bt-expected.png: * platform/mac/fast/multicol/pagination/RightToLeft-lr-expected.png: * platform/mac/fast/multicol/pagination/RightToLeft-rl-dynamic-expected.png: Added. * platform/mac/fast/multicol/pagination/RightToLeft-rl-dynamic-expected.txt: Added. * platform/mac/fast/multicol/pagination/RightToLeft-rl-expected.png: * platform/mac/fast/multicol/pagination/RightToLeft-tb-expected.png: * platform/mac/fast/multicol/pagination/TopToBottom-bt-expected.png: * platform/mac/fast/multicol/pagination/TopToBottom-lr-expected.png: * platform/mac/fast/multicol/pagination/TopToBottom-rl-expected.png: * platform/mac/fast/multicol/pagination/TopToBottom-tb-expected.png: * platform/mac/fast/multicol/pagination/nested-transforms-expected.png:
Modified Paths
- trunk/LayoutTests/ChangeLog
- trunk/LayoutTests/platform/mac/fast/multicol/pagination/BottomToTop-bt-expected.png
- trunk/LayoutTests/platform/mac/fast/multicol/pagination/BottomToTop-lr-expected.png
- trunk/LayoutTests/platform/mac/fast/multicol/pagination/BottomToTop-rl-expected.png
- trunk/LayoutTests/platform/mac/fast/multicol/pagination/BottomToTop-tb-expected.png
- trunk/LayoutTests/platform/mac/fast/multicol/pagination/LeftToRight-bt-expected.png
- trunk/LayoutTests/platform/mac/fast/multicol/pagination/LeftToRight-lr-expected.png
- trunk/LayoutTests/platform/mac/fast/multicol/pagination/LeftToRight-rl-expected.png
- trunk/LayoutTests/platform/mac/fast/multicol/pagination/LeftToRight-tb-expected.png
- trunk/LayoutTests/platform/mac/fast/multicol/pagination/RightToLeft-bt-expected.png
- trunk/LayoutTests/platform/mac/fast/multicol/pagination/RightToLeft-lr-expected.png
- trunk/LayoutTests/platform/mac/fast/multicol/pagination/RightToLeft-rl-expected.png
- trunk/LayoutTests/platform/mac/fast/multicol/pagination/RightToLeft-tb-expected.png
- trunk/LayoutTests/platform/mac/fast/multicol/pagination/TopToBottom-bt-expected.png
- trunk/LayoutTests/platform/mac/fast/multicol/pagination/TopToBottom-lr-expected.png
- trunk/LayoutTests/platform/mac/fast/multicol/pagination/TopToBottom-rl-expected.png
- trunk/LayoutTests/platform/mac/fast/multicol/pagination/TopToBottom-tb-expected.png
- trunk/LayoutTests/platform/mac/fast/multicol/pagination/nested-transforms-expected.png
- trunk/Source/WebCore/ChangeLog
- trunk/Source/WebCore/rendering/RenderBlockFlow.cpp
- trunk/Source/WebCore/rendering/RenderBlockFlow.h
- trunk/Source/WebCore/rendering/RenderBox.cpp
- trunk/Source/WebCore/rendering/RenderMultiColumnSet.cpp
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (170303 => 170304)
--- trunk/LayoutTests/ChangeLog 2014-06-23 18:25:12 UTC (rev 170303)
+++ trunk/LayoutTests/ChangeLog 2014-06-23 18:56:52 UTC (rev 170304)
@@ -1,3 +1,33 @@
+2014-06-23 David Hyatt <[email protected]>
+
+ [New Multicolumn] Writing mode changes on the <html> and RenderView need to
+ be propagated to column sets and flow thread children of those renderers.
+ https://bugs.webkit.org/show_bug.cgi?id=134121
+ <rdar://problem/16884527>
+
+ Reviewed by Dean Jackson.
+
+ * fast/multicol/pagination/RightToLeft-rl-dynamic.html: Added.
+ * platform/mac/fast/multicol/pagination/BottomToTop-bt-expected.png:
+ * platform/mac/fast/multicol/pagination/BottomToTop-lr-expected.png:
+ * platform/mac/fast/multicol/pagination/BottomToTop-rl-expected.png:
+ * platform/mac/fast/multicol/pagination/BottomToTop-tb-expected.png:
+ * platform/mac/fast/multicol/pagination/LeftToRight-bt-expected.png:
+ * platform/mac/fast/multicol/pagination/LeftToRight-lr-expected.png:
+ * platform/mac/fast/multicol/pagination/LeftToRight-rl-expected.png:
+ * platform/mac/fast/multicol/pagination/LeftToRight-tb-expected.png:
+ * platform/mac/fast/multicol/pagination/RightToLeft-bt-expected.png:
+ * platform/mac/fast/multicol/pagination/RightToLeft-lr-expected.png:
+ * platform/mac/fast/multicol/pagination/RightToLeft-rl-dynamic-expected.png: Added.
+ * platform/mac/fast/multicol/pagination/RightToLeft-rl-dynamic-expected.txt: Added.
+ * platform/mac/fast/multicol/pagination/RightToLeft-rl-expected.png:
+ * platform/mac/fast/multicol/pagination/RightToLeft-tb-expected.png:
+ * platform/mac/fast/multicol/pagination/TopToBottom-bt-expected.png:
+ * platform/mac/fast/multicol/pagination/TopToBottom-lr-expected.png:
+ * platform/mac/fast/multicol/pagination/TopToBottom-rl-expected.png:
+ * platform/mac/fast/multicol/pagination/TopToBottom-tb-expected.png:
+ * platform/mac/fast/multicol/pagination/nested-transforms-expected.png:
+
2014-06-23 Michał Pakuła vel Rutka <[email protected]>
[EFL] Move WebKit2 test results into LayoutTests/platform/efl
Added: trunk/LayoutTests/fast/multicol/pagination/RightToLeft-rl-dynamic.html (0 => 170304)
--- trunk/LayoutTests/fast/multicol/pagination/RightToLeft-rl-dynamic.html (rev 0)
+++ trunk/LayoutTests/fast/multicol/pagination/RightToLeft-rl-dynamic.html 2014-06-23 18:56:52 UTC (rev 170304)
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+ <style>
+ .box {
+ height: 50px;
+ width: 50px;
+ background-color: blue;
+ }
+ .box.changed {
+ background-color: green;
+ }
+ </style>
+ <script>
+ if (window.internals)
+ internals.setPagination("RightToLeftPaginated", 20, 180);
+ </script>
+</head>
+<body _onload_="document.body.offsetLeft; document.body.style.webkitWritingMode = 'vertical-rl'">
+
+<div class="box" _onclick_="this.classList.toggle('changed')"></div>
+<p>1 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+<div class="box" _onclick_="this.classList.toggle('changed')"></div>
+<p>2 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+<div class="box" _onclick_="this.classList.toggle('changed')"></div>
+<p>3 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+<div class="box" _onclick_="this.classList.toggle('changed')"></div>
+<p>4 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. </p>
+<div class="box" _onclick_="this.classList.toggle('changed')"></div>
+<p>5 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+<div class="box" _onclick_="this.classList.toggle('changed')"></div>
+<p>6 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+<div class="box" _onclick_="this.classList.toggle('changed')"></div>
+<p>7 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. </p>
+<div class="box" _onclick_="this.classList.toggle('changed')"></div>
+<p>8 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. </p>
+
+
+</body>
+</html>
Modified: trunk/LayoutTests/platform/mac/fast/multicol/pagination/BottomToTop-bt-expected.png
(Binary files differ)
Modified: trunk/LayoutTests/platform/mac/fast/multicol/pagination/BottomToTop-lr-expected.png
(Binary files differ)
Modified: trunk/LayoutTests/platform/mac/fast/multicol/pagination/BottomToTop-rl-expected.png
(Binary files differ)
Modified: trunk/LayoutTests/platform/mac/fast/multicol/pagination/BottomToTop-tb-expected.png
(Binary files differ)
Modified: trunk/LayoutTests/platform/mac/fast/multicol/pagination/LeftToRight-bt-expected.png
(Binary files differ)
Modified: trunk/LayoutTests/platform/mac/fast/multicol/pagination/LeftToRight-lr-expected.png
(Binary files differ)
Modified: trunk/LayoutTests/platform/mac/fast/multicol/pagination/LeftToRight-rl-expected.png
(Binary files differ)
Modified: trunk/LayoutTests/platform/mac/fast/multicol/pagination/LeftToRight-tb-expected.png
(Binary files differ)
Modified: trunk/LayoutTests/platform/mac/fast/multicol/pagination/RightToLeft-bt-expected.png
(Binary files differ)
Modified: trunk/LayoutTests/platform/mac/fast/multicol/pagination/RightToLeft-lr-expected.png
(Binary files differ)
Added: trunk/LayoutTests/platform/mac/fast/multicol/pagination/RightToLeft-rl-dynamic-expected.png
(Binary files differ)
Added: svn:mime-type
Added: trunk/LayoutTests/platform/mac/fast/multicol/pagination/RightToLeft-rl-dynamic-expected.txt (0 => 170304)
--- trunk/LayoutTests/platform/mac/fast/multicol/pagination/RightToLeft-rl-dynamic-expected.txt (rev 0)
+++ trunk/LayoutTests/platform/mac/fast/multicol/pagination/RightToLeft-rl-dynamic-expected.txt 2014-06-23 18:56:52 UTC (rev 170304)
@@ -0,0 +1,80 @@
+layer at (0,0) size 1780x585
+ RenderView at (0,0) size 800x585
+ RenderMultiColumnSet at (0,0) size 800x585
+layer at (-764,0) size 1564x585 backgroundClip at (0,0) size 1780x585 clip at (0,0) size 1780x585 outlineClip at (0,0) size 1780x585
+ RenderMultiColumnFlowThread at (0,0) size 1564x585
+layer at (-764,0) size 1564x585 backgroundClip at (0,0) size 1780x585 clip at (0,0) size 1780x585 outlineClip at (0,0) size 1780x585
+ RenderBlock {HTML} at (0,0) size 1564x585
+ RenderBody {BODY} at (8,8) size 1540x569
+ RenderBlock {DIV} at (0,0) size 50x50 [bgcolor=#0000FF]
+ RenderBlock {P} at (66,0) size 124x569
+ RenderText {#text} at (0,0) size 124x546
+ text run at (0,0) width 513: "1 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor"
+ text run at (18,0) width 526: "incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud"
+ text run at (36,0) width 534: "exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure"
+ text run at (54,0) width 512: "dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur."
+ text run at (72,0) width 546: "Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit"
+ text run at (106,0) width 128: "anim id est laborum."
+ RenderBlock {DIV} at (206,0) size 50x50 [bgcolor=#0000FF]
+ RenderBlock {P} at (272,0) size 116x569
+ RenderText {#text} at (0,0) size 116x546
+ text run at (0,0) width 513: "2 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor"
+ text run at (18,0) width 526: "incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud"
+ text run at (36,0) width 534: "exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure"
+ text run at (54,0) width 512: "dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur."
+ text run at (80,0) width 546: "Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit"
+ text run at (98,0) width 128: "anim id est laborum."
+ RenderBlock {DIV} at (404,0) size 50x50 [bgcolor=#0000FF]
+ RenderBlock {P} at (470,0) size 116x569
+ RenderText {#text} at (0,0) size 116x546
+ text run at (0,0) width 513: "3 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor"
+ text run at (18,0) width 526: "incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud"
+ text run at (36,0) width 534: "exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure"
+ text run at (62,0) width 512: "dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur."
+ text run at (80,0) width 546: "Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit"
+ text run at (98,0) width 128: "anim id est laborum."
+ RenderBlock {DIV} at (602,0) size 50x50 [bgcolor=#0000FF]
+ RenderBlock {P} at (668,0) size 116x569
+ RenderText {#text} at (0,0) size 116x546
+ text run at (0,0) width 513: "4 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor"
+ text run at (18,0) width 526: "incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud"
+ text run at (44,0) width 534: "exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure"
+ text run at (62,0) width 512: "dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur."
+ text run at (80,0) width 546: "Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit"
+ text run at (98,0) width 128: "anim id est laborum."
+ RenderBlock {DIV} at (800,0) size 50x50 [bgcolor=#0000FF]
+ RenderBlock {P} at (866,0) size 116x569
+ RenderText {#text} at (0,0) size 116x546
+ text run at (0,0) width 513: "5 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor"
+ text run at (26,0) width 526: "incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud"
+ text run at (44,0) width 534: "exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure"
+ text run at (62,0) width 512: "dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur."
+ text run at (80,0) width 546: "Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit"
+ text run at (98,0) width 128: "anim id est laborum."
+ RenderBlock {DIV} at (998,0) size 50x50 [bgcolor=#0000FF]
+ RenderBlock {P} at (1072,0) size 108x569
+ RenderText {#text} at (0,0) size 108x546
+ text run at (0,0) width 513: "6 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor"
+ text run at (18,0) width 526: "incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud"
+ text run at (36,0) width 534: "exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure"
+ text run at (54,0) width 512: "dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur."
+ text run at (72,0) width 546: "Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit"
+ text run at (90,0) width 128: "anim id est laborum."
+ RenderBlock {DIV} at (1196,0) size 50x50 [bgcolor=#0000FF]
+ RenderBlock {P} at (1252,0) size 108x569
+ RenderText {#text} at (0,0) size 108x546
+ text run at (0,0) width 513: "7 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor"
+ text run at (18,0) width 526: "incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud"
+ text run at (36,0) width 534: "exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure"
+ text run at (54,0) width 512: "dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur."
+ text run at (72,0) width 546: "Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit"
+ text run at (90,0) width 128: "anim id est laborum."
+ RenderBlock {DIV} at (1376,0) size 50x50 [bgcolor=#0000FF]
+ RenderBlock {P} at (1432,0) size 108x569
+ RenderText {#text} at (0,0) size 108x546
+ text run at (0,0) width 513: "8 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor"
+ text run at (18,0) width 526: "incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud"
+ text run at (36,0) width 534: "exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure"
+ text run at (54,0) width 512: "dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur."
+ text run at (72,0) width 546: "Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit"
+ text run at (90,0) width 128: "anim id est laborum."
Modified: trunk/LayoutTests/platform/mac/fast/multicol/pagination/RightToLeft-rl-expected.png
(Binary files differ)
Modified: trunk/LayoutTests/platform/mac/fast/multicol/pagination/RightToLeft-tb-expected.png
(Binary files differ)
Modified: trunk/LayoutTests/platform/mac/fast/multicol/pagination/TopToBottom-bt-expected.png
(Binary files differ)
Modified: trunk/LayoutTests/platform/mac/fast/multicol/pagination/TopToBottom-lr-expected.png
(Binary files differ)
Modified: trunk/LayoutTests/platform/mac/fast/multicol/pagination/TopToBottom-rl-expected.png
(Binary files differ)
Modified: trunk/LayoutTests/platform/mac/fast/multicol/pagination/TopToBottom-tb-expected.png
(Binary files differ)
Modified: trunk/LayoutTests/platform/mac/fast/multicol/pagination/nested-transforms-expected.png
(Binary files differ)
Modified: trunk/Source/WebCore/ChangeLog (170303 => 170304)
--- trunk/Source/WebCore/ChangeLog 2014-06-23 18:25:12 UTC (rev 170303)
+++ trunk/Source/WebCore/ChangeLog 2014-06-23 18:56:52 UTC (rev 170304)
@@ -1,3 +1,30 @@
+2014-06-23 David Hyatt <[email protected]>
+
+ [New Multicolumn] Writing mode changes on the <html> and RenderView need to
+ be propagated to column sets and flow thread children of those renderers.
+ https://bugs.webkit.org/show_bug.cgi?id=134121
+ <rdar://problem/16884527>
+
+ Reviewed by Dean Jackson.
+
+ Added fast/multicol/pagination/RightToLeft-rl-dynamic.html
+
+ * rendering/RenderBlockFlow.cpp:
+ (WebCore::RenderBlockFlow::styleDidChange):
+ Refactor the propagation code for column sets and flow thread styles into a helper
+ function that is called here.
+
+ (WebCore::RenderBlockFlow::updateStylesForColumnChildren):
+ * rendering/RenderBlockFlow.h:
+ Add a new helper function for recalculating the styles of the column sets and
+ flow thread in response to changes.
+
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::styleDidChange):
+ When the style is changed for a root element or the RenderView in response to
+ writing mode and direction changes, make sure that style gets propagated to
+ the column children by calling the new helper function.
+
2014-06-23 Jer Noble <[email protected]>
[Mac] Uncaught exception crash when destroying MediaPlayerPrivateAVFoundationObjC
Modified: trunk/Source/WebCore/rendering/RenderBlockFlow.cpp (170303 => 170304)
--- trunk/Source/WebCore/rendering/RenderBlockFlow.cpp 2014-06-23 18:25:12 UTC (rev 170303)
+++ trunk/Source/WebCore/rendering/RenderBlockFlow.cpp 2014-06-23 18:56:52 UTC (rev 170304)
@@ -1968,14 +1968,16 @@
invalidateLineLayoutPath();
}
- if (multiColumnFlowThread()) {
- for (auto child = firstChildBox();
- child && (child->isInFlowRenderFlowThread() || child->isRenderMultiColumnSet());
- child = child->nextSiblingBox())
- child->setStyle(RenderStyle::createAnonymousStyleWithDisplay(&style(), BLOCK));
- }
+ if (multiColumnFlowThread())
+ updateStylesForColumnChildren();
}
+void RenderBlockFlow::updateStylesForColumnChildren()
+{
+ for (auto child = firstChildBox(); child && (child->isInFlowRenderFlowThread() || child->isRenderMultiColumnSet()); child = child->nextSiblingBox())
+ child->setStyle(RenderStyle::createAnonymousStyleWithDisplay(&style(), BLOCK));
+}
+
void RenderBlockFlow::styleWillChange(StyleDifference diff, const RenderStyle& newStyle)
{
const RenderStyle* oldStyle = hasInitializedStyle() ? &style() : nullptr;
Modified: trunk/Source/WebCore/rendering/RenderBlockFlow.h (170303 => 170304)
--- trunk/Source/WebCore/rendering/RenderBlockFlow.h 2014-06-23 18:25:12 UTC (rev 170303)
+++ trunk/Source/WebCore/rendering/RenderBlockFlow.h 2014-06-23 18:56:52 UTC (rev 170304)
@@ -386,8 +386,9 @@
void createMultiColumnFlowThread();
void destroyMultiColumnFlowThread();
-
+
void updateColumnProgressionFromStyle(RenderStyle*);
+ void updateStylesForColumnChildren();
virtual bool needsLayoutAfterRegionRangeChange() const override;
Modified: trunk/Source/WebCore/rendering/RenderBox.cpp (170303 => 170304)
--- trunk/Source/WebCore/rendering/RenderBox.cpp 2014-06-23 18:25:12 UTC (rev 170303)
+++ trunk/Source/WebCore/rendering/RenderBox.cpp 2014-06-23 18:56:52 UTC (rev 170304)
@@ -367,21 +367,29 @@
// Propagate the new writing mode and direction up to the RenderView.
RenderStyle& viewStyle = view().style();
bool viewChangedWritingMode = false;
+ bool rootStyleChanged = false;
+ bool viewStyleChanged = false;
+ RenderObject* rootRenderer = isBodyRenderer ? document().documentElement()->renderer() : nullptr;
if (viewStyle.direction() != newStyle.direction() && (isRootRenderer || !document().directionSetOnDocumentElement())) {
viewStyle.setDirection(newStyle.direction());
- if (isBodyRenderer)
- document().documentElement()->renderer()->style().setDirection(newStyle.direction());
+ viewStyleChanged = true;
+ if (isBodyRenderer) {
+ rootRenderer->style().setDirection(newStyle.direction());
+ rootStyleChanged = true;
+ }
setNeedsLayoutAndPrefWidthsRecalc();
}
if (viewStyle.writingMode() != newStyle.writingMode() && (isRootRenderer || !document().writingModeSetOnDocumentElement())) {
viewStyle.setWritingMode(newStyle.writingMode());
viewChangedWritingMode = true;
+ viewStyleChanged = true;
view().setHorizontalWritingMode(newStyle.isHorizontalWritingMode());
view().markAllDescendantsWithFloatsForLayout();
if (isBodyRenderer) {
- document().documentElement()->renderer()->style().setWritingMode(newStyle.writingMode());
- document().documentElement()->renderer()->setHorizontalWritingMode(newStyle.isHorizontalWritingMode());
+ rootStyleChanged = true;
+ rootRenderer->style().setWritingMode(newStyle.writingMode());
+ rootRenderer->setHorizontalWritingMode(newStyle.isHorizontalWritingMode());
}
setNeedsLayoutAndPrefWidthsRecalc();
}
@@ -394,6 +402,12 @@
if (view().multiColumnFlowThread())
view().updateColumnProgressionFromStyle(&viewStyle);
}
+
+ if (viewStyleChanged && view().multiColumnFlowThread())
+ view().updateStylesForColumnChildren();
+
+ if (rootStyleChanged && rootRenderer && rootRenderer->isRenderBlockFlow() && toRenderBlockFlow(rootRenderer)->multiColumnFlowThread())
+ toRenderBlockFlow(rootRenderer)->updateStylesForColumnChildren();
}
#if ENABLE(CSS_SHAPES)
Modified: trunk/Source/WebCore/rendering/RenderMultiColumnSet.cpp (170303 => 170304)
--- trunk/Source/WebCore/rendering/RenderMultiColumnSet.cpp 2014-06-23 18:25:12 UTC (rev 170303)
+++ trunk/Source/WebCore/rendering/RenderMultiColumnSet.cpp 2014-06-23 18:56:52 UTC (rev 170304)
@@ -665,6 +665,7 @@
LayoutRect flowThreadOverflowPortion = flowThreadPortionOverflowRect(flowThreadPortion, i, colCount, colGap);
// Do a repaint for this specific column.
+ flipForWritingMode(colRect);
repaintFlowThreadContentRectangle(repaintRect, flowThreadPortion, colRect.location(), &flowThreadOverflowPortion);
}
}
_______________________________________________ webkit-changes mailing list [email protected] https://lists.webkit.org/mailman/listinfo/webkit-changes
