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

Side by Side Diff: Source/core/rendering/style/RenderStyle.cpp

Issue 580533002: Use PositionedMovementLayout for changes to positioned elements' margins (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 3 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « LayoutTests/fast/repaint/fixed-margin-change-repaint-expected.txt ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Antti Koivisto (koivisto@kde.org) 2 * Copyright (C) 1999 Antti Koivisto (koivisto@kde.org)
3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved. 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved.
4 * Copyright (C) 2011 Adobe Systems Incorporated. All rights reserved. 4 * Copyright (C) 2011 Adobe Systems Incorporated. All rights reserved.
5 * 5 *
6 * This library is free software; you can redistribute it and/or 6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public 7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either 8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version. 9 * version 2 of the License, or (at your option) any later version.
10 * 10 *
(...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after
378 diff = m_svgStyle->diff(other.m_svgStyle.get()); 378 diff = m_svgStyle->diff(other.m_svgStyle.get());
379 379
380 if ((!diff.needsFullLayout() || !diff.needsPaintInvalidation()) && diffNeeds FullLayoutAndPaintInvalidation(other)) { 380 if ((!diff.needsFullLayout() || !diff.needsPaintInvalidation()) && diffNeeds FullLayoutAndPaintInvalidation(other)) {
381 diff.setNeedsFullLayout(); 381 diff.setNeedsFullLayout();
382 diff.setNeedsPaintInvalidationObject(); 382 diff.setNeedsPaintInvalidationObject();
383 } 383 }
384 384
385 if (!diff.needsFullLayout() && diffNeedsFullLayout(other)) 385 if (!diff.needsFullLayout() && diffNeedsFullLayout(other))
386 diff.setNeedsFullLayout(); 386 diff.setNeedsFullLayout();
387 387
388 if (!diff.needsFullLayout() && surround->margin != other.surround->margin) {
389 if (position() == AbsolutePosition || position() == FixedPosition)
Julien - ping for review 2014/09/23 19:53:51 Shouldn't we use position() != StaticPosition here
rhogan 2014/09/23 20:08:27 We can't include RelativePosition here because the
390 diff.setNeedsPositionedMovementLayout();
391 else
392 diff.setNeedsFullLayout();
393 }
394
388 if (!diff.needsFullLayout() && position() != StaticPosition && surround->off set != other.surround->offset) { 395 if (!diff.needsFullLayout() && position() != StaticPosition && surround->off set != other.surround->offset) {
389 // Optimize for the case where a positioned layer is moving but not chan ging size. 396 // Optimize for the case where a positioned layer is moving but not chan ging size.
390 if (positionedObjectMovedOnly(surround->offset, other.surround->offset, m_box->width())) 397 if (positionedObjectMovedOnly(surround->offset, other.surround->offset, m_box->width()))
391 diff.setNeedsPositionedMovementLayout(); 398 diff.setNeedsPositionedMovementLayout();
392 else 399 else
393 diff.setNeedsFullLayout(); 400 diff.setNeedsFullLayout();
394 } 401 }
395 402
396 if (diffNeedsPaintInvalidationLayer(other)) 403 if (diffNeedsPaintInvalidationLayer(other))
397 diff.setNeedsPaintInvalidationLayer(); 404 diff.setNeedsPaintInvalidationLayer();
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
596 603
597 if (m_box->boxSizing() != other.m_box->boxSizing()) 604 if (m_box->boxSizing() != other.m_box->boxSizing())
598 return true; 605 return true;
599 } 606 }
600 607
601 if (noninherited_flags.verticalAlign != other.noninherited_flags.verticalAli gn 608 if (noninherited_flags.verticalAlign != other.noninherited_flags.verticalAli gn
602 || noninherited_flags.position != other.noninherited_flags.position) 609 || noninherited_flags.position != other.noninherited_flags.position)
603 return true; 610 return true;
604 611
605 if (surround.get() != other.surround.get()) { 612 if (surround.get() != other.surround.get()) {
606 if (surround->margin != other.surround->margin)
607 return true;
608
609 if (surround->padding != other.surround->padding) 613 if (surround->padding != other.surround->padding)
610 return true; 614 return true;
611 } 615 }
612 616
613 if (rareNonInheritedData.get() != other.rareNonInheritedData.get()) { 617 if (rareNonInheritedData.get() != other.rareNonInheritedData.get()) {
614 if (rareNonInheritedData->m_alignContent != other.rareNonInheritedData-> m_alignContent 618 if (rareNonInheritedData->m_alignContent != other.rareNonInheritedData-> m_alignContent
615 || rareNonInheritedData->m_alignItems != other.rareNonInheritedData- >m_alignItems 619 || rareNonInheritedData->m_alignItems != other.rareNonInheritedData- >m_alignItems
616 || rareNonInheritedData->m_alignSelf != other.rareNonInheritedData-> m_alignSelf) 620 || rareNonInheritedData->m_alignSelf != other.rareNonInheritedData-> m_alignSelf)
617 return true; 621 return true;
618 } 622 }
(...skipping 1121 matching lines...) Expand 10 before | Expand all | Expand 10 after
1740 horizontal || includeLogicalRightEdge); 1744 horizontal || includeLogicalRightEdge);
1741 1745
1742 edges[BSLeft] = BorderEdge(borderLeftWidth(), 1746 edges[BSLeft] = BorderEdge(borderLeftWidth(),
1743 visitedDependentColor(CSSPropertyBorderLeftColor), 1747 visitedDependentColor(CSSPropertyBorderLeftColor),
1744 borderLeftStyle(), 1748 borderLeftStyle(),
1745 borderLeftIsTransparent(), 1749 borderLeftIsTransparent(),
1746 !horizontal || includeLogicalLeftEdge); 1750 !horizontal || includeLogicalLeftEdge);
1747 } 1751 }
1748 1752
1749 } // namespace blink 1753 } // namespace blink
OLDNEW
« no previous file with comments | « LayoutTests/fast/repaint/fixed-margin-change-repaint-expected.txt ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698