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

Side by Side Diff: Source/core/rendering/RenderDeprecatedFlexibleBox.cpp

Issue 264963004: Mark when we may have been invalidated to early out on repaintTreeAfterLayout. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 7 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
OLDNEW
1 /* 1 /*
2 * This file is part of the render object implementation for KHTML. 2 * This file is part of the render object implementation for KHTML.
3 * 3 *
4 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 4 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
5 * (C) 1999 Antti Koivisto (koivisto@kde.org) 5 * (C) 1999 Antti Koivisto (koivisto@kde.org)
6 * Copyright (C) 2003 Apple Computer, Inc. 6 * Copyright (C) 2003 Apple Computer, Inc.
7 * 7 *
8 * This library is free software; you can redistribute it and/or 8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public 9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either 10 * License as published by the Free Software Foundation; either
(...skipping 652 matching lines...) Expand 10 before | Expand all | Expand 10 after
663 RenderLayer* childLayer = child->layer(); 663 RenderLayer* childLayer = child->layer();
664 childLayer->setStaticInlinePosition(borderStart() + paddingStart ()); 664 childLayer->setStaticInlinePosition(borderStart() + paddingStart ());
665 if (childLayer->staticBlockPosition() != height()) { 665 if (childLayer->staticBlockPosition() != height()) {
666 childLayer->setStaticBlockPosition(height()); 666 childLayer->setStaticBlockPosition(height());
667 if (child->style()->hasStaticBlockPosition(style()->isHorizo ntalWritingMode())) 667 if (child->style()->hasStaticBlockPosition(style()->isHorizo ntalWritingMode()))
668 child->setChildNeedsLayout(MarkOnlyThis); 668 child->setChildNeedsLayout(MarkOnlyThis);
669 } 669 }
670 continue; 670 continue;
671 } 671 }
672 672
673 child->setMayNeedInvalidation(true);
674
673 SubtreeLayoutScope layoutScope(*child); 675 SubtreeLayoutScope layoutScope(*child);
674 if (!haveLineClamp && (relayoutChildren || (child->isReplaced() && ( child->style()->width().isPercent() || child->style()->height().isPercent())))) 676 if (!haveLineClamp && (relayoutChildren || (child->isReplaced() && ( child->style()->width().isPercent() || child->style()->height().isPercent()))))
675 layoutScope.setChildNeedsLayout(child); 677 layoutScope.setChildNeedsLayout(child);
676 678
677 if (child->style()->visibility() == COLLAPSE) { 679 if (child->style()->visibility() == COLLAPSE) {
678 // visibility: collapsed children do not participate in our posi tioning. 680 // visibility: collapsed children do not participate in our posi tioning.
679 // But we need to lay them down. 681 // But we need to lay them down.
680 child->layoutIfNeeded(); 682 child->layoutIfNeeded();
681 continue; 683 continue;
682 } 684 }
(...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after
992 toRenderBlock(child)->clearTruncation(); 994 toRenderBlock(child)->clearTruncation();
993 } 995 }
994 } 996 }
995 } 997 }
996 } 998 }
997 999
998 void RenderDeprecatedFlexibleBox::placeChild(RenderBox* child, const LayoutPoint & location) 1000 void RenderDeprecatedFlexibleBox::placeChild(RenderBox* child, const LayoutPoint & location)
999 { 1001 {
1000 LayoutRect oldRect = child->frameRect(); 1002 LayoutRect oldRect = child->frameRect();
1001 1003
1004 child->setMayNeedInvalidation(true);
1005
1002 // Place the child. 1006 // Place the child.
1003 child->setLocation(location); 1007 child->setLocation(location);
1004 1008
1005 // If the child moved, we have to repaint it as well as any floating/positio ned 1009 // If the child moved, we have to repaint it as well as any floating/positio ned
1006 // descendants. An exception is if we need a layout. In this case, we know we're going to 1010 // descendants. An exception is if we need a layout. In this case, we know we're going to
1007 // repaint ourselves (and the child) anyway. 1011 // repaint ourselves (and the child) anyway.
1008 if (!selfNeedsLayout() && child->checkForRepaintDuringLayout()) 1012 if (!selfNeedsLayout() && child->checkForRepaintDuringLayout())
1009 child->repaintDuringLayoutIfMoved(oldRect); 1013 child->repaintDuringLayoutIfMoved(oldRect);
1010 } 1014 }
1011 1015
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
1078 if (isPseudoElement()) 1082 if (isPseudoElement())
1079 return "RenderDeprecatedFlexibleBox (generated)"; 1083 return "RenderDeprecatedFlexibleBox (generated)";
1080 if (isAnonymous()) 1084 if (isAnonymous())
1081 return "RenderDeprecatedFlexibleBox (generated)"; 1085 return "RenderDeprecatedFlexibleBox (generated)";
1082 if (isRelPositioned()) 1086 if (isRelPositioned())
1083 return "RenderDeprecatedFlexibleBox (relative positioned)"; 1087 return "RenderDeprecatedFlexibleBox (relative positioned)";
1084 return "RenderDeprecatedFlexibleBox"; 1088 return "RenderDeprecatedFlexibleBox";
1085 } 1089 }
1086 1090
1087 } // namespace WebCore 1091 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698