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

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

Issue 644073002: Avoid layout when list color changes (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 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/RenderListItem.cpp
diff --git a/Source/core/rendering/RenderListItem.cpp b/Source/core/rendering/RenderListItem.cpp
index 6c251c4263ad53e95a8804e375c1e8ec97d2d89d..df84cc1ae55f3626471955fd8edace91dcb812cd 100644
--- a/Source/core/rendering/RenderListItem.cpp
+++ b/Source/core/rendering/RenderListItem.cpp
@@ -63,8 +63,15 @@ void RenderListItem::styleDidChange(StyleDifference diff, const RenderStyle* old
// The marker always inherits from the list item, regardless of where it might end
// up (e.g., in some deeply nested line box). See CSS3 spec.
newStyle->inheritFrom(style());
- if (!m_marker)
+ if (m_marker) {
+ // Reuse the current margins otherwise resetting the margins to initial values
mstensho (USE GERRIT) 2014/10/14 19:06:03 I don't think RenderListItem should have to know t
Xianzhu 2014/10/14 19:33:59 Good catch! Though set{margin-left, margin-right}
+ // would trigger unnecessary layout.
+ newStyle->setMarginLeft(m_marker->style()->marginLeft());
+ newStyle->setMarginRight(m_marker->style()->marginRight());
+ } else {
m_marker = RenderListMarker::createAnonymous(this);
+ }
+
m_marker->setStyle(newStyle.release());
} else if (m_marker) {
m_marker->destroy();

Powered by Google App Engine
This is Rietveld 408576698