Index: Source/core/rendering/RenderObject.h |
diff --git a/Source/core/rendering/RenderObject.h b/Source/core/rendering/RenderObject.h |
index bd27cc85d31a91811bfb79949d3c105b1ab14e10..b3da13ed7cd4a29e857f3acf24fbf51f0bcd6fa7 100644 |
--- a/Source/core/rendering/RenderObject.h |
+++ b/Source/core/rendering/RenderObject.h |
@@ -633,6 +633,7 @@ public: |
Element* offsetParent() const; |
void markContainingBlocksForLayout(bool scheduleRelayout = true, RenderObject* newRoot = 0, SubtreeLayoutScope* = 0); |
+ void setNeedsLayoutWithoutForcingFullRepaint(MarkingBehavior = MarkContainingBlockChain, SubtreeLayoutScope* = 0); |
Julien - ping for review
2014/05/12 15:08:46
This function is not used outside RenderObject so
Xianzhu
2014/05/12 21:31:51
We will need this function (in new opting-in-repai
|
void setNeedsLayout(MarkingBehavior = MarkContainingBlockChain, SubtreeLayoutScope* = 0); |
void clearNeedsLayout(); |
void setChildNeedsLayout(MarkingBehavior = MarkContainingBlockChain, SubtreeLayoutScope* = 0); |
@@ -646,6 +647,11 @@ public: |
setNeedsLayout(); |
setPreferredLogicalWidthsDirty(); |
} |
+ void setNeedsLayoutAndPrefWidthsRecalcWithoutForcingFullRepaint() |
Julien - ping for review
2014/05/12 15:08:46
I think we should make this the default, not an op
Xianzhu
2014/05/12 21:31:51
Done.
|
+ { |
+ setNeedsLayoutWithoutForcingFullRepaint(); |
+ setPreferredLogicalWidthsDirty(); |
+ } |
void setPositionState(EPosition position) |
{ |
@@ -1294,7 +1300,7 @@ inline bool RenderObject::isBeforeOrAfterContent() const |
return isBeforeContent() || isAfterContent(); |
} |
-inline void RenderObject::setNeedsLayout(MarkingBehavior markParents, SubtreeLayoutScope* layouter) |
+inline void RenderObject::setNeedsLayoutWithoutForcingFullRepaint(MarkingBehavior markParents, SubtreeLayoutScope* layouter) |
{ |
ASSERT(!isSetNeedsLayoutForbidden()); |
bool alreadyNeededLayout = m_bitfields.selfNeedsLayout(); |
@@ -1305,10 +1311,14 @@ inline void RenderObject::setNeedsLayout(MarkingBehavior markParents, SubtreeLay |
} |
} |
+inline void RenderObject::setNeedsLayout(MarkingBehavior markParents, SubtreeLayoutScope* layouter) |
+{ |
+ setNeedsLayoutWithoutForcingFullRepaint(markParents, layouter); |
+ setShouldDoFullRepaintAfterLayout(true); |
+} |
Julien - ping for review
2014/05/07 00:24:32
For me, this bit is total madness: we *don't* want
Xianzhu
2014/05/07 00:39:22
Could you give more details about how this CL chan
Julien - ping for review
2014/05/08 21:03:49
We have 2 ways to generate invalidations: incremen
Xianzhu
2014/05/08 21:52:55
Incremental invalidation is only possible when the
Julien - ping for review
2014/05/12 15:08:46
OK, I see your point. It makes an assumption in th
|
+ |
inline void RenderObject::clearNeedsLayout() |
{ |
- if (!shouldDoFullRepaintAfterLayout()) |
- setShouldDoFullRepaintAfterLayout(selfNeedsLayout()); |
if (needsPositionedMovementLayoutOnly()) |
setOnlyNeededPositionedMovementLayout(true); |
setLayoutDidGetCalled(true); |