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

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

Issue 43873004: Relayout RenderObjects with viewport-percentage CSS properties when viewport size changes (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 2 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
Index: Source/core/rendering/RenderObject.cpp
diff --git a/Source/core/rendering/RenderObject.cpp b/Source/core/rendering/RenderObject.cpp
index de770b47f58352df427646411434c11e9aa7a979..ab14b0c2d2e54f1459a2391f50e426fb26a81aa2 100644
--- a/Source/core/rendering/RenderObject.cpp
+++ b/Source/core/rendering/RenderObject.cpp
@@ -2060,6 +2060,17 @@ void RenderObject::styleDidChange(StyleDifference diff, const RenderStyle* oldSt
if (s_affectsParentBlock)
handleDynamicFloatPositionChange();
+ if (RenderView* view = this->view()) {
esprehn 2013/10/25 22:25:51 You don't need to null check this, going through s
+ bool newStyleMayHaveViewportPercentage = style()->mayHaveViewportPercentageProperty();
+ bool oldStyleMayHaveViewportPercentage = oldStyle && oldStyle->mayHaveViewportPercentageProperty();
+ if (newStyleMayHaveViewportPercentage != oldStyleMayHaveViewportPercentage) {
+ if (newStyleMayHaveViewportPercentage)
+ view->addViewportPercentageStyleObject(this);
+ else
+ view->removeViewportPercentageStyleObject(this);
+ }
+ }
+
if (!m_parent)
return;
@@ -2609,6 +2620,9 @@ void RenderObject::willBeDestroyed()
setAncestorLineBoxDirty(false);
clearLayoutRootIfNeeded();
+
+ if (RenderView* view = this->view())
+ view->removeViewportPercentageStyleObject(this);
}
void RenderObject::insertedIntoTree()

Powered by Google App Engine
This is Rietveld 408576698