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

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

Issue 14359018: Correct overflow propagation in BTT and RTL writing-modes (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@236320
Patch Set: Don't remove incorrect expected.png files. Add stuff to LayoutTests/TestExpectations instead. Created 7 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
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. All rights reserved. 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. 6 * Copyright (C) Research In Motion Limited 2010. All rights reserved.
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 1724 matching lines...) Expand 10 before | Expand all | Expand 10 after
1735 if (!hasColumns() && (recomputeFloats || isRoot() || expandsToEncloseOverhan gingFloats() || hasSelfPaintingLayer())) 1735 if (!hasColumns() && (recomputeFloats || isRoot() || expandsToEncloseOverhan gingFloats() || hasSelfPaintingLayer()))
1736 addOverflowFromFloats(); 1736 addOverflowFromFloats();
1737 1737
1738 // Add in the overflow from positioned objects. 1738 // Add in the overflow from positioned objects.
1739 addOverflowFromPositionedObjects(); 1739 addOverflowFromPositionedObjects();
1740 1740
1741 if (hasOverflowClip()) { 1741 if (hasOverflowClip()) {
1742 // When we have overflow clip, propagate the original spillout since it will include collapsed bottom margins 1742 // When we have overflow clip, propagate the original spillout since it will include collapsed bottom margins
1743 // and bottom padding. Set the axis we don't care about to be 1, since we want this overflow to always 1743 // and bottom padding. Set the axis we don't care about to be 1, since we want this overflow to always
1744 // be considered reachable. 1744 // be considered reachable.
1745 LayoutRect clientRect(clientBoxRect()); 1745 LayoutRect clientRect(noOverflowRect());
1746 LayoutRect rectToApply; 1746 LayoutRect rectToApply;
1747 if (isHorizontalWritingMode()) 1747 if (isHorizontalWritingMode())
1748 rectToApply = LayoutRect(clientRect.x(), clientRect.y(), 1, max<Layo utUnit>(0, oldClientAfterEdge - clientRect.y())); 1748 rectToApply = LayoutRect(clientRect.x(), clientRect.y(), 1, max<Layo utUnit>(0, oldClientAfterEdge - clientRect.y()));
1749 else 1749 else
1750 rectToApply = LayoutRect(clientRect.x(), clientRect.y(), max<LayoutU nit>(0, oldClientAfterEdge - clientRect.x()), 1); 1750 rectToApply = LayoutRect(clientRect.x(), clientRect.y(), max<LayoutU nit>(0, oldClientAfterEdge - clientRect.x()), 1);
1751 addLayoutOverflow(rectToApply); 1751 addLayoutOverflow(rectToApply);
1752 if (hasRenderOverflow()) 1752 if (hasRenderOverflow())
1753 m_overflow->setLayoutClientAfterEdge(oldClientAfterEdge); 1753 m_overflow->setLayoutClientAfterEdge(oldClientAfterEdge);
1754 } 1754 }
1755 1755
1756 // Allow our overflow to catch cases where the caret in an empty editable el ement with negative text indent needs to get painted. 1756 // Allow our overflow to catch cases where the caret in an empty editable el ement with negative text indent needs to get painted.
1757 LayoutUnit textIndent = textIndentOffset(); 1757 LayoutUnit textIndent = textIndentOffset();
1758 if (textIndent < 0) { 1758 if (textIndent < 0) {
1759 LayoutRect clientRect(clientBoxRect()); 1759 LayoutRect clientRect(noOverflowRect());
1760 LayoutRect rectToApply = LayoutRect(clientRect.x() + min<LayoutUnit>(0, textIndent), clientRect.y(), clientRect.width() - min<LayoutUnit>(0, textIndent) , clientRect.height()); 1760 LayoutRect rectToApply = LayoutRect(clientRect.x() + min<LayoutUnit>(0, textIndent), clientRect.y(), clientRect.width() - min<LayoutUnit>(0, textIndent) , clientRect.height());
1761 addVisualOverflow(rectToApply); 1761 addVisualOverflow(rectToApply);
1762 } 1762 }
1763 1763
1764 // Add visual overflow from box-shadow and border-image-outset. 1764 // Add visual overflow from box-shadow and border-image-outset.
1765 addVisualEffectOverflow(); 1765 addVisualEffectOverflow();
1766 1766
1767 // Add visual overflow from theme. 1767 // Add visual overflow from theme.
1768 addVisualOverflowFromTheme(); 1768 addVisualOverflowFromTheme();
1769 1769
(...skipping 6366 matching lines...) Expand 10 before | Expand all | Expand 10 after
8136 { 8136 {
8137 memoryInstrumentation->addRootObject(gColumnInfoMap, WebCoreMemoryTypes::Ren deringStructures); 8137 memoryInstrumentation->addRootObject(gColumnInfoMap, WebCoreMemoryTypes::Ren deringStructures);
8138 memoryInstrumentation->addRootObject(gPositionedDescendantsMap, WebCoreMemor yTypes::RenderingStructures); 8138 memoryInstrumentation->addRootObject(gPositionedDescendantsMap, WebCoreMemor yTypes::RenderingStructures);
8139 memoryInstrumentation->addRootObject(gPercentHeightDescendantsMap, WebCoreMe moryTypes::RenderingStructures); 8139 memoryInstrumentation->addRootObject(gPercentHeightDescendantsMap, WebCoreMe moryTypes::RenderingStructures);
8140 memoryInstrumentation->addRootObject(gPositionedContainerMap, WebCoreMemoryT ypes::RenderingStructures); 8140 memoryInstrumentation->addRootObject(gPositionedContainerMap, WebCoreMemoryT ypes::RenderingStructures);
8141 memoryInstrumentation->addRootObject(gPercentHeightContainerMap, WebCoreMemo ryTypes::RenderingStructures); 8141 memoryInstrumentation->addRootObject(gPercentHeightContainerMap, WebCoreMemo ryTypes::RenderingStructures);
8142 memoryInstrumentation->addRootObject(gDelayedUpdateScrollInfoSet, WebCoreMem oryTypes::RenderingStructures); 8142 memoryInstrumentation->addRootObject(gDelayedUpdateScrollInfoSet, WebCoreMem oryTypes::RenderingStructures);
8143 } 8143 }
8144 8144
8145 } // namespace WebCore 8145 } // namespace WebCore
OLDNEW
« no previous file with comments | « LayoutTests/fast/css/overflow-rtl-border-after-expected.txt ('k') | Source/core/rendering/RenderBox.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698