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

Unified Diff: Source/core/rendering/RenderObject.h

Issue 197283038: Add RenderObject::needsResizeLayout (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebase Created 6 years, 9 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 side-by-side diff with in-line comments
Download patch
« Source/core/rendering/RenderBox.h ('K') | « Source/core/rendering/RenderBox.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/rendering/RenderObject.h
diff --git a/Source/core/rendering/RenderObject.h b/Source/core/rendering/RenderObject.h
index 7ffb86cf19aca82d227df40ec668be67628ae97a..7d360160784e3603c794b9c5a7d6f424dd23c803 100644
--- a/Source/core/rendering/RenderObject.h
+++ b/Source/core/rendering/RenderObject.h
@@ -530,7 +530,7 @@ public:
bool needsLayout() const
{
return m_bitfields.selfNeedsLayout() || m_bitfields.normalChildNeedsLayout() || m_bitfields.posChildNeedsLayout()
- || m_bitfields.needsSimplifiedNormalFlowLayout() || m_bitfields.needsPositionedMovementLayout();
+ || m_bitfields.needsSimplifiedNormalFlowLayout() || m_bitfields.needsPositionedMovementLayout() || m_bitfields.needsResizeLayout();
}
bool selfNeedsLayout() const { return m_bitfields.selfNeedsLayout(); }
@@ -538,13 +538,20 @@ public:
bool needsPositionedMovementLayoutOnly() const
{
return m_bitfields.needsPositionedMovementLayout() && !m_bitfields.selfNeedsLayout() && !m_bitfields.normalChildNeedsLayout()
- && !m_bitfields.posChildNeedsLayout() && !m_bitfields.needsSimplifiedNormalFlowLayout();
+ && !m_bitfields.posChildNeedsLayout() && !m_bitfields.needsSimplifiedNormalFlowLayout() && !m_bitfields.needsResizeLayout();
}
bool posChildNeedsLayout() const { return m_bitfields.posChildNeedsLayout(); }
bool needsSimplifiedNormalFlowLayout() const { return m_bitfields.needsSimplifiedNormalFlowLayout(); }
bool normalChildNeedsLayout() const { return m_bitfields.normalChildNeedsLayout(); }
+ bool needsResizeLayout() const { return m_bitfields.needsResizeLayout(); }
+ bool needsResizeLayoutOnly() const
+ {
+ return m_bitfields.needsResizeLayout() && !m_bitfields.selfNeedsLayout() && !m_bitfields.normalChildNeedsLayout()
+ && !m_bitfields.posChildNeedsLayout() && !m_bitfields.needsSimplifiedNormalFlowLayout() && !m_bitfields.needsPositionedMovementLayout();
+ }
+
bool preferredLogicalWidthsDirty() const { return m_bitfields.preferredLogicalWidthsDirty(); }
bool isSelectionBorder() const;
@@ -616,6 +623,7 @@ public:
void setChildNeedsLayout(MarkingBehavior = MarkContainingBlockChain, SubtreeLayoutScope* = 0);
void setNeedsPositionedMovementLayout();
void setNeedsSimplifiedNormalFlowLayout();
+ void setNeedsResizeLayout();
void setPreferredLogicalWidthsDirty(MarkingBehavior = MarkContainingBlockChain);
void clearPreferredLogicalWidthsDirty();
void invalidateContainerPreferredLogicalWidths();
@@ -1115,6 +1123,7 @@ private:
, m_normalChildNeedsLayout(false)
, m_posChildNeedsLayout(false)
, m_needsSimplifiedNormalFlowLayout(false)
+ , m_needsResizeLayout(false)
, m_preferredLogicalWidthsDirty(false)
, m_floating(false)
, m_isAnonymous(!node)
@@ -1152,6 +1161,7 @@ private:
ADD_BOOLEAN_BITFIELD(normalChildNeedsLayout, NormalChildNeedsLayout);
ADD_BOOLEAN_BITFIELD(posChildNeedsLayout, PosChildNeedsLayout);
ADD_BOOLEAN_BITFIELD(needsSimplifiedNormalFlowLayout, NeedsSimplifiedNormalFlowLayout);
+ ADD_BOOLEAN_BITFIELD(needsResizeLayout, NeedsResizeLayout);
ADD_BOOLEAN_BITFIELD(preferredLogicalWidthsDirty, PreferredLogicalWidthsDirty);
ADD_BOOLEAN_BITFIELD(floating, Floating);
@@ -1219,6 +1229,7 @@ private:
void setNormalChildNeedsLayout(bool b) { m_bitfields.setNormalChildNeedsLayout(b); }
void setPosChildNeedsLayout(bool b) { m_bitfields.setPosChildNeedsLayout(b); }
void setNeedsSimplifiedNormalFlowLayout(bool b) { m_bitfields.setNeedsSimplifiedNormalFlowLayout(b); }
+ void setNeedsResizeLayout(bool b) { m_bitfields.setNeedsResizeLayout(b); }
void setIsDragging(bool b) { m_bitfields.setIsDragging(b); }
void setEverHadLayout(bool b) { m_bitfields.setEverHadLayout(b); }
void setShouldRepaintOverflow(bool b) { m_bitfields.setShouldRepaintOverflow(b); }
@@ -1290,6 +1301,7 @@ inline void RenderObject::clearNeedsLayout()
setNeedsSimplifiedNormalFlowLayout(false);
setNormalChildNeedsLayout(false);
setNeedsPositionedMovementLayout(false);
+ setNeedsResizeLayout(false);
setAncestorLineBoxDirty(false);
#ifndef NDEBUG
checkBlockPositionedObjectsNeedLayout();
@@ -1330,6 +1342,15 @@ inline void RenderObject::setNeedsSimplifiedNormalFlowLayout()
}
}
+inline void RenderObject::setNeedsResizeLayout()
+{
+ // FIXME: needsResizeLayout is for RenderView for now, but will be applied
+ // to other RenderObjects in later changes.
+ ASSERT(isRenderView());
+ ASSERT(!isSetNeedsLayoutForbidden());
+ setNeedsResizeLayout(true);
esprehn 2014/03/21 20:15:39 Please don't add this overload like this.
Xianzhu 2014/03/21 20:37:15 Done. (Note: naming of setNeedsResizeLayoutIntern
+}
+
inline bool RenderObject::preservesNewline() const
{
if (isSVGInlineText())
« Source/core/rendering/RenderBox.h ('K') | « Source/core/rendering/RenderBox.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698