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

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutBlock.cpp

Issue 2462643002: Be more restrictive about forcing relayout of children for pagination. (Closed)
Patch Set: No need to call updateFragmentationInfoForChild() when not paginated. Created 4 years, 1 month 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2007 David Smith (catfish.man@gmail.com) 4 * (C) 2007 David Smith (catfish.man@gmail.com)
5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc.
6 * All rights reserved. 6 * All rights reserved.
7 * Copyright (C) Research In Motion Limited 2010. All rights reserved. 7 * Copyright (C) Research In Motion Limited 2010. All rights reserved.
8 * 8 *
9 * This library is free software; you can redistribute it and/or 9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Library General Public 10 * modify it under the terms of the GNU Library General Public
(...skipping 809 matching lines...) Expand 10 before | Expand all | Expand 10 after
820 // TODO(cbiesinger): We could probably avoid a layout here and just 820 // TODO(cbiesinger): We could probably avoid a layout here and just
821 // reposition? 821 // reposition?
822 positionedObject->forceChildLayout(); 822 positionedObject->forceChildLayout();
823 layoutChanged = true; 823 layoutChanged = true;
824 } 824 }
825 825
826 // Lay out again if our estimate was wrong. 826 // Lay out again if our estimate was wrong.
827 if (!layoutChanged && needsBlockDirectionLocationSetBeforeLayout && 827 if (!layoutChanged && needsBlockDirectionLocationSetBeforeLayout &&
828 logicalTopEstimate != logicalTopForChild(*positionedObject)) 828 logicalTopEstimate != logicalTopForChild(*positionedObject))
829 positionedObject->forceChildLayout(); 829 positionedObject->forceChildLayout();
830
831 if (isPaginated)
832 updateFragmentationInfoForChild(*positionedObject);
830 } 833 }
831 } 834 }
832 835
833 void LayoutBlock::markPositionedObjectsForLayout() { 836 void LayoutBlock::markPositionedObjectsForLayout() {
834 if (TrackedLayoutBoxListHashSet* positionedDescendants = 837 if (TrackedLayoutBoxListHashSet* positionedDescendants =
835 positionedObjects()) { 838 positionedObjects()) {
836 for (auto* descendant : *positionedDescendants) 839 for (auto* descendant : *positionedDescendants)
837 descendant->setChildNeedsLayout(); 840 descendant->setChildNeedsLayout();
838 } 841 }
839 } 842 }
(...skipping 1363 matching lines...) Expand 10 before | Expand all | Expand 10 after
2203 } 2206 }
2204 2207
2205 return availableHeight; 2208 return availableHeight;
2206 } 2209 }
2207 2210
2208 bool LayoutBlock::hasDefiniteLogicalHeight() const { 2211 bool LayoutBlock::hasDefiniteLogicalHeight() const {
2209 return availableLogicalHeightForPercentageComputation() != LayoutUnit(-1); 2212 return availableLogicalHeightForPercentageComputation() != LayoutUnit(-1);
2210 } 2213 }
2211 2214
2212 } // namespace blink 2215 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698