Changeset 154221 in webkit
- Timestamp:
- Aug 17, 2013 5:31:39 AM (11 years ago)
- Location:
- trunk
- Files:
-
- 22 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r154220 r154221 1 2013-08-17 Morten Stenshorne <mstensho@opera.com> 2 3 <https://webkit.org/b/119795> Propagate writing-mode from the first region to the flow thread 4 5 Reviewed by Darin Adler. 6 7 * fast/regions/changing-writing-mode-2-expected.html: Added. 8 * fast/regions/changing-writing-mode-2.html: Added. 9 * fast/regions/changing-writing-mode-3-expected.html: Added. 10 * fast/regions/changing-writing-mode-3.html: Added. 11 * fast/regions/changing-writing-mode-4-expected.html: Added. 12 * fast/regions/changing-writing-mode-4.html: Added. 13 * fast/regions/changing-writing-mode-5-expected.html: Added. 14 * fast/regions/changing-writing-mode-5.html: Added. 15 * fast/regions/changing-writing-mode-expected.html: Added. 16 * fast/regions/changing-writing-mode.html: Added. 17 * fast/regions/invalid-first-region-with-writing-mode-2-expected.html: Added. 18 * fast/regions/invalid-first-region-with-writing-mode-2.html: Added. 19 * fast/regions/invalid-first-region-with-writing-mode-expected.html: Added. 20 * fast/regions/invalid-first-region-with-writing-mode.html: Added. 21 * fast/regions/subtree-with-horiz-bt-expected.html: Added. 22 * fast/regions/subtree-with-horiz-bt.html: Added. 23 * fast/regions/subtree-with-horiz-tb-expected.html: Added. 24 * fast/regions/subtree-with-horiz-tb.html: Added. 25 * fast/regions/subtree-with-vert-lr-expected.html: Added. 26 * fast/regions/subtree-with-vert-lr.html: Added. 27 * fast/regions/subtree-with-vert-rl-expected.html: Added. 28 * fast/regions/subtree-with-vert-rl.html: Added. 29 1 30 2013-08-17 Zan Dobersek <zdobersek@igalia.com> 2 31 -
trunk/Source/WebCore/ChangeLog
r154219 r154221 1 2013-08-17 Morten Stenshorne <mstensho@opera.com> 2 3 <https://webkit.org/b/119795> Propagate writing-mode from the first region to the flow thread 4 5 Reviewed by Darin Adler. 6 7 Since the flow thread is a direct child of RenderView, it doesn't inherit 8 proper writing-mode automatically. It should be mentioned that if the thread's 9 contents' writing-mode differs from that of the first region, things are 10 typically going to look useless (although perhaps that's how it should be), 11 but as long as writing-mode is only specified on a common parent of the 12 thread's contents and the regions, things look fine, and also, we're now 13 following what the spec has to say on the matter: 14 15 http://www.w3.org/TR/2013/WD-css3-regions-20130528/#the-flow-into-property 16 17 "The first region defines the principal writing mode for the entire flow. 18 The writing mode on subsequent regions is ignored." 19 20 This is a back-port of the fix for Blink bug 257965. 21 Reviewed by esprehn and mihnea there. 22 Blink review URL: https://chromiumcodereview.appspot.com/18374008 23 24 Tests: fast/regions/changing-writing-mode-2.html 25 fast/regions/changing-writing-mode-3.html 26 fast/regions/changing-writing-mode-4.html 27 fast/regions/changing-writing-mode-5.html 28 fast/regions/changing-writing-mode.html 29 fast/regions/invalid-first-region-with-writing-mode-2.html 30 fast/regions/invalid-first-region-with-writing-mode.html 31 fast/regions/subtree-with-horiz-bt.html 32 fast/regions/subtree-with-horiz-tb.html 33 fast/regions/subtree-with-vert-lr.html 34 fast/regions/subtree-with-vert-rl.html 35 36 * rendering/RenderFlowThread.cpp: 37 (WebCore::RenderFlowThread::styleDidChange): 38 * rendering/RenderFlowThread.h: 39 * rendering/RenderNamedFlowThread.cpp: 40 (WebCore::RenderNamedFlowThread::updateWritingMode): 41 (WebCore::RenderNamedFlowThread::addRegionToNamedFlowThread): 42 (WebCore::RenderNamedFlowThread::removeRegionFromThread): 43 (WebCore::RenderNamedFlowThread::regionChangedWritingMode): 44 * rendering/RenderNamedFlowThread.h: 45 * rendering/RenderRegion.cpp: 46 (WebCore::RenderRegion::styleDidChange): 47 1 48 2013-08-16 Andreas Kling <akling@apple.com> 2 49 -
trunk/Source/WebCore/rendering/RenderFlowThread.cpp
r154072 r154221 91 91 92 92 if (oldStyle && oldStyle->writingMode() != style()->writingMode()) 93 m_regionsInvalidated = true;93 invalidateRegions(); 94 94 } 95 95 -
trunk/Source/WebCore/rendering/RenderFlowThread.h
r154072 r154221 89 89 bool hasRegionsWithStyling() const { return m_hasRegionsWithStyling; } 90 90 void checkRegionsWithStyling(); 91 virtual void regionChangedWritingMode(RenderRegion*) { } 91 92 92 93 void validateRegions(); -
trunk/Source/WebCore/rendering/RenderNamedFlowThread.cpp
r151843 r154221 90 90 } 91 91 92 void RenderNamedFlowThread::updateWritingMode() 93 { 94 RenderRegion* firstRegion = m_regionList.first(); 95 if (!firstRegion) 96 return; 97 if (style()->writingMode() == firstRegion->style()->writingMode()) 98 return; 99 100 // The first region defines the principal writing mode for the entire flow. 101 RefPtr<RenderStyle> newStyle = RenderStyle::clone(style()); 102 newStyle->setWritingMode(firstRegion->style()->writingMode()); 103 setStyle(newStyle.release()); 104 } 105 92 106 RenderObject* RenderNamedFlowThread::nextRendererForNode(Node* node) const 93 107 { … … 244 258 renderRegion->setIsValid(true); 245 259 addRegionToList(m_regionList, renderRegion); 260 261 if (m_regionList.first() == renderRegion) 262 updateWritingMode(); 246 263 } 247 264 … … 283 300 284 301 ASSERT(m_regionList.contains(renderRegion)); 302 bool wasFirst = m_regionList.first() == renderRegion; 285 303 m_regionList.remove(renderRegion); 286 304 … … 291 309 if (m_regionList.isEmpty()) 292 310 setDispatchRegionLayoutUpdateEvent(true); 311 else if (wasFirst) 312 updateWritingMode(); 293 313 294 314 invalidateRegions(); 315 } 316 317 void RenderNamedFlowThread::regionChangedWritingMode(RenderRegion* region) 318 { 319 if (m_regionList.first() == region) 320 updateWritingMode(); 295 321 } 296 322 -
trunk/Source/WebCore/rendering/RenderNamedFlowThread.h
r153380 r154221 69 69 virtual void removeRegionFromThread(RenderRegion*) OVERRIDE; 70 70 71 virtual void regionChangedWritingMode(RenderRegion*) OVERRIDE; 72 71 73 bool overset() const { return m_overset; } 72 74 void computeOversetStateForRegions(LayoutUnit oldClientAfterEdge); … … 105 107 void regionOversetChangeEventTimerFired(Timer<RenderNamedFlowThread>*); 106 108 void clearContentNodes(); 109 void updateWritingMode(); 107 110 108 111 private: -
trunk/Source/WebCore/rendering/RenderRegion.cpp
r154072 r154221 294 294 checkRegionStyle(); 295 295 updateRegionHasAutoLogicalHeightFlag(); 296 297 if (oldStyle && oldStyle->writingMode() != style()->writingMode()) 298 m_flowThread->regionChangedWritingMode(this); 296 299 } 297 300
Note: See TracChangeset
for help on using the changeset viewer.