Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(517)

Side by Side Diff: Source/core/rendering/RenderBlockFlow.h

Issue 218663004: Changing between multicol and regular block shouldn't recreate all renderers. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Code review Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2007 David Smith (catfish.man@gmail.com) 4 * (C) 2007 David Smith (catfish.man@gmail.com)
5 * Copyright (C) 2003-2013 Apple Inc. All rights reserved. 5 * Copyright (C) 2003-2013 Apple Inc. All rights reserved.
6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. 6 * Copyright (C) Research In Motion Limited 2010. All rights reserved.
7 * Copyright (C) 2013 Google Inc. All rights reserved. 7 * Copyright (C) 2013 Google Inc. All rights reserved.
8 * 8 *
9 * Redistribution and use in source and binary forms, with or without 9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions are 10 * modification, are permitted provided that the following conditions are
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 static TextRun constructTextRun(RenderObject* context, const Font&, const Re nderText*, unsigned offset, RenderStyle*, 190 static TextRun constructTextRun(RenderObject* context, const Font&, const Re nderText*, unsigned offset, RenderStyle*,
191 TextRun::ExpansionBehavior = TextRun::AllowTrailingExpansion | TextRun:: ForbidLeadingExpansion); 191 TextRun::ExpansionBehavior = TextRun::AllowTrailingExpansion | TextRun:: ForbidLeadingExpansion);
192 192
193 static TextRun constructTextRun(RenderObject* context, const Font&, const LC har* characters, int length, RenderStyle*, TextDirection, 193 static TextRun constructTextRun(RenderObject* context, const Font&, const LC har* characters, int length, RenderStyle*, TextDirection,
194 TextRun::ExpansionBehavior = TextRun::AllowTrailingExpansion | TextRun:: ForbidLeadingExpansion); 194 TextRun::ExpansionBehavior = TextRun::AllowTrailingExpansion | TextRun:: ForbidLeadingExpansion);
195 195
196 static TextRun constructTextRun(RenderObject* context, const Font&, const UC har* characters, int length, RenderStyle*, TextDirection, 196 static TextRun constructTextRun(RenderObject* context, const Font&, const UC har* characters, int length, RenderStyle*, TextDirection,
197 TextRun::ExpansionBehavior = TextRun::AllowTrailingExpansion | TextRun:: ForbidLeadingExpansion); 197 TextRun::ExpansionBehavior = TextRun::AllowTrailingExpansion | TextRun:: ForbidLeadingExpansion);
198 198
199 RenderMultiColumnFlowThread* multiColumnFlowThread() const { return m_rareDa ta ? m_rareData->m_multiColumnFlowThread : 0; } 199 RenderMultiColumnFlowThread* multiColumnFlowThread() const { return m_rareDa ta ? m_rareData->m_multiColumnFlowThread : 0; }
200 void resetMultiColumnFlowThread()
201 {
202 if (m_rareData)
203 m_rareData->m_multiColumnFlowThread = 0;
204 }
200 205
201 void addOverflowFromInlineChildren(); 206 void addOverflowFromInlineChildren();
202 207
203 // FIXME: This should be const to avoid a const_cast, but can modify child d irty bits and RenderCombineText 208 // FIXME: This should be const to avoid a const_cast, but can modify child d irty bits and RenderCombineText
204 void computeInlinePreferredLogicalWidths(LayoutUnit& minLogicalWidth, Layout Unit& maxLogicalWidth); 209 void computeInlinePreferredLogicalWidths(LayoutUnit& minLogicalWidth, Layout Unit& maxLogicalWidth);
205 210
206 GapRects inlineSelectionGaps(RenderBlock* rootBlock, const LayoutPoint& root BlockPhysicalPosition, const LayoutSize& offsetFromRootBlock, 211 GapRects inlineSelectionGaps(RenderBlock* rootBlock, const LayoutPoint& root BlockPhysicalPosition, const LayoutSize& offsetFromRootBlock,
207 LayoutUnit& lastLogicalTop, LayoutUnit& lastLogicalLeft, LayoutUnit& las tLogicalRight, const PaintInfo*); 212 LayoutUnit& lastLogicalTop, LayoutUnit& lastLogicalLeft, LayoutUnit& las tLogicalRight, const PaintInfo*);
208 protected: 213 protected:
209 void rebuildFloatsFromIntruding(); 214 void rebuildFloatsFromIntruding();
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
294 LayoutUnit logicalRightOffsetForPositioningFloat(LayoutUnit logicalTop, Layo utUnit fixedOffset, bool applyTextIndent, LayoutUnit* heightRemaining) const; 299 LayoutUnit logicalRightOffsetForPositioningFloat(LayoutUnit logicalTop, Layo utUnit fixedOffset, bool applyTextIndent, LayoutUnit* heightRemaining) const;
295 LayoutUnit logicalLeftOffsetForPositioningFloat(LayoutUnit logicalTop, Layou tUnit fixedOffset, bool applyTextIndent, LayoutUnit* heightRemaining) const; 300 LayoutUnit logicalLeftOffsetForPositioningFloat(LayoutUnit logicalTop, Layou tUnit fixedOffset, bool applyTextIndent, LayoutUnit* heightRemaining) const;
296 301
297 LayoutUnit adjustLogicalRightOffsetForLine(LayoutUnit offsetFromFloats, bool applyTextIndent) const; 302 LayoutUnit adjustLogicalRightOffsetForLine(LayoutUnit offsetFromFloats, bool applyTextIndent) const;
298 LayoutUnit adjustLogicalLeftOffsetForLine(LayoutUnit offsetFromFloats, bool applyTextIndent) const; 303 LayoutUnit adjustLogicalLeftOffsetForLine(LayoutUnit offsetFromFloats, bool applyTextIndent) const;
299 304
300 virtual void adjustForBorderFit(LayoutUnit x, LayoutUnit& left, LayoutUnit& right) const OVERRIDE; // Helper function for borderFitAdjust 305 virtual void adjustForBorderFit(LayoutUnit x, LayoutUnit& left, LayoutUnit& right) const OVERRIDE; // Helper function for borderFitAdjust
301 306
302 virtual RootInlineBox* createRootInlineBox(); // Subclassed by SVG 307 virtual RootInlineBox* createRootInlineBox(); // Subclassed by SVG
303 308
304 void createMultiColumnFlowThreadIfNeeded(); 309 void createOrDestroyMultiColumnFlowThreadIfNeeded();
305 310
306 void updateLogicalWidthForAlignment(const ETextAlign&, const RootInlineBox*, BidiRun* trailingSpaceRun, float& logicalLeft, float& totalLogicalWidth, float& availableLogicalWidth, int expansionOpportunityCount); 311 void updateLogicalWidthForAlignment(const ETextAlign&, const RootInlineBox*, BidiRun* trailingSpaceRun, float& logicalLeft, float& totalLogicalWidth, float& availableLogicalWidth, int expansionOpportunityCount);
307 void checkForPaginationLogicalHeightChange(LayoutUnit& pageLogicalHeight, bo ol& pageLogicalHeightChanged, bool& hasSpecifiedPageLogicalHeight); 312 void checkForPaginationLogicalHeightChange(LayoutUnit& pageLogicalHeight, bo ol& pageLogicalHeightChanged, bool& hasSpecifiedPageLogicalHeight);
308 bool shouldRelayoutForPagination(LayoutUnit& pageLogicalHeight, LayoutUnit l ayoutOverflowLogicalBottom) const; 313 bool shouldRelayoutForPagination(LayoutUnit& pageLogicalHeight, LayoutUnit l ayoutOverflowLogicalBottom) const;
309 void setColumnCountAndHeight(unsigned count, LayoutUnit pageLogicalHeight); 314 void setColumnCountAndHeight(unsigned count, LayoutUnit pageLogicalHeight);
310 315
311 public: 316 public:
312 struct FloatWithRect { 317 struct FloatWithRect {
313 FloatWithRect(RenderBox* f) 318 FloatWithRect(RenderBox* f)
314 : object(f) 319 : object(f)
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
489 494
490 // END METHODS DEFINED IN RenderBlockLineLayout 495 // END METHODS DEFINED IN RenderBlockLineLayout
491 496
492 }; 497 };
493 498
494 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderBlockFlow, isRenderBlockFlow()); 499 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderBlockFlow, isRenderBlockFlow());
495 500
496 } // namespace WebCore 501 } // namespace WebCore
497 502
498 #endif // RenderBlockFlow_h 503 #endif // RenderBlockFlow_h
OLDNEW
« no previous file with comments | « LayoutTests/fast/multicol/regular-block-becomes-multicol-expected.html ('k') | Source/core/rendering/RenderBlockFlow.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698