Index: Source/core/rendering/RenderObject.h |
diff --git a/Source/core/rendering/RenderObject.h b/Source/core/rendering/RenderObject.h |
index 7c12db0fb50a55049e113e373ed17e1465427ea7..09d4353eba19c5578e6bb64d3a1c4f19bb429ce3 100644 |
--- a/Source/core/rendering/RenderObject.h |
+++ b/Source/core/rendering/RenderObject.h |
@@ -628,6 +628,7 @@ public: |
Element* offsetParent() const; |
void markContainingBlocksForLayout(bool scheduleRelayout = true, RenderObject* newRoot = 0, SubtreeLayoutScope* = 0); |
+ void setNeedsLayout(MarkingBehavior = MarkContainingBlockChain, SubtreeLayoutScope* = 0); |
void setNeedsLayoutAndFullRepaint(MarkingBehavior = MarkContainingBlockChain, SubtreeLayoutScope* = 0); |
void clearNeedsLayout(); |
void setChildNeedsLayout(MarkingBehavior = MarkContainingBlockChain, SubtreeLayoutScope* = 0); |
@@ -636,6 +637,11 @@ public: |
void clearPreferredLogicalWidthsDirty(); |
void invalidateContainerPreferredLogicalWidths(); |
+ void setNeedsLayoutAndPrefWidthsRecalc() |
+ { |
+ setNeedsLayout(); |
+ setPreferredLogicalWidthsDirty(); |
+ } |
void setNeedsLayoutAndPrefWidthsRecalcAndFullRepaint() |
{ |
setNeedsLayoutAndFullRepaint(); |
@@ -1325,7 +1331,9 @@ inline bool RenderObject::isBeforeOrAfterContent() const |
return isBeforeContent() || isAfterContent(); |
} |
-inline void RenderObject::setNeedsLayoutAndFullRepaint(MarkingBehavior markParents, SubtreeLayoutScope* layouter) |
+// If repaintAfterLayout is enabled, setNeedsLayout() won't cause full repaint as |
+// setNeedsLayoutAndFullRepaint() does. Otherwise the two methods are identical. |
+inline void RenderObject::setNeedsLayout(MarkingBehavior markParents, SubtreeLayoutScope* layouter) |
{ |
ASSERT(!isSetNeedsLayoutForbidden()); |
bool alreadyNeededLayout = m_bitfields.selfNeedsLayout(); |
@@ -1336,10 +1344,14 @@ inline void RenderObject::setNeedsLayoutAndFullRepaint(MarkingBehavior markParen |
} |
} |
+inline void RenderObject::setNeedsLayoutAndFullRepaint(MarkingBehavior markParents, SubtreeLayoutScope* layouter) |
+{ |
+ setNeedsLayout(markParents, layouter); |
+ setShouldDoFullRepaintAfterLayout(true); |
+} |
+ |
inline void RenderObject::clearNeedsLayout() |
{ |
- if (!shouldDoFullRepaintAfterLayout()) |
- setShouldDoFullRepaintAfterLayout(selfNeedsLayout()); |
if (needsPositionedMovementLayoutOnly()) |
setOnlyNeededPositionedMovementLayout(true); |
setLayoutDidGetCalled(true); |