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

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

Issue 18720003: Correct overflow propagation in BTT and RTL writing-modes (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 7 years, 5 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 1729 matching lines...) Expand 10 before | Expand all | Expand 10 after
1740 if (!hasColumns() && (recomputeFloats || isRoot() || expandsToEncloseOverhan gingFloats() || hasSelfPaintingLayer())) 1740 if (!hasColumns() && (recomputeFloats || isRoot() || expandsToEncloseOverhan gingFloats() || hasSelfPaintingLayer()))
1741 addOverflowFromFloats(); 1741 addOverflowFromFloats();
1742 1742
1743 // Add in the overflow from positioned objects. 1743 // Add in the overflow from positioned objects.
1744 addOverflowFromPositionedObjects(); 1744 addOverflowFromPositionedObjects();
1745 1745
1746 if (hasOverflowClip()) { 1746 if (hasOverflowClip()) {
1747 // When we have overflow clip, propagate the original spillout since it will include collapsed bottom margins 1747 // When we have overflow clip, propagate the original spillout since it will include collapsed bottom margins
1748 // and bottom padding. Set the axis we don't care about to be 1, since we want this overflow to always 1748 // and bottom padding. Set the axis we don't care about to be 1, since we want this overflow to always
1749 // be considered reachable. 1749 // be considered reachable.
1750 LayoutRect clientRect(clientBoxRect()); 1750 LayoutRect clientRect(noOverflowRect());
1751 LayoutRect rectToApply; 1751 LayoutRect rectToApply;
1752 if (isHorizontalWritingMode()) 1752 if (isHorizontalWritingMode())
1753 rectToApply = LayoutRect(clientRect.x(), clientRect.y(), 1, max<Layo utUnit>(0, oldClientAfterEdge - clientRect.y())); 1753 rectToApply = LayoutRect(clientRect.x(), clientRect.y(), 1, max<Layo utUnit>(0, oldClientAfterEdge - clientRect.y()));
1754 else 1754 else
1755 rectToApply = LayoutRect(clientRect.x(), clientRect.y(), max<LayoutU nit>(0, oldClientAfterEdge - clientRect.x()), 1); 1755 rectToApply = LayoutRect(clientRect.x(), clientRect.y(), max<LayoutU nit>(0, oldClientAfterEdge - clientRect.x()), 1);
1756 addLayoutOverflow(rectToApply); 1756 addLayoutOverflow(rectToApply);
1757 if (hasRenderOverflow()) 1757 if (hasRenderOverflow())
1758 m_overflow->setLayoutClientAfterEdge(oldClientAfterEdge); 1758 m_overflow->setLayoutClientAfterEdge(oldClientAfterEdge);
1759 } 1759 }
1760 1760
1761 // Allow our overflow to catch cases where the caret in an empty editable el ement with negative text indent needs to get painted. 1761 // Allow our overflow to catch cases where the caret in an empty editable el ement with negative text indent needs to get painted.
1762 LayoutUnit textIndent = textIndentOffset(); 1762 LayoutUnit textIndent = textIndentOffset();
1763 if (textIndent < 0) { 1763 if (textIndent < 0) {
1764 LayoutRect clientRect(clientBoxRect()); 1764 LayoutRect clientRect(noOverflowRect());
1765 LayoutRect rectToApply = LayoutRect(clientRect.x() + min<LayoutUnit>(0, textIndent), clientRect.y(), clientRect.width() - min<LayoutUnit>(0, textIndent) , clientRect.height()); 1765 LayoutRect rectToApply = LayoutRect(clientRect.x() + min<LayoutUnit>(0, textIndent), clientRect.y(), clientRect.width() - min<LayoutUnit>(0, textIndent) , clientRect.height());
1766 addVisualOverflow(rectToApply); 1766 addVisualOverflow(rectToApply);
1767 } 1767 }
1768 1768
1769 // Add visual overflow from box-shadow and border-image-outset. 1769 // Add visual overflow from box-shadow and border-image-outset.
1770 addVisualEffectOverflow(); 1770 addVisualEffectOverflow();
1771 1771
1772 // Add visual overflow from theme. 1772 // Add visual overflow from theme.
1773 addVisualOverflowFromTheme(); 1773 addVisualOverflowFromTheme();
1774 1774
(...skipping 6373 matching lines...) Expand 10 before | Expand all | Expand 10 after
8148 { 8148 {
8149 memoryInstrumentation->addRootObject(gColumnInfoMap, WebCoreMemoryTypes::Ren deringStructures); 8149 memoryInstrumentation->addRootObject(gColumnInfoMap, WebCoreMemoryTypes::Ren deringStructures);
8150 memoryInstrumentation->addRootObject(gPositionedDescendantsMap, WebCoreMemor yTypes::RenderingStructures); 8150 memoryInstrumentation->addRootObject(gPositionedDescendantsMap, WebCoreMemor yTypes::RenderingStructures);
8151 memoryInstrumentation->addRootObject(gPercentHeightDescendantsMap, WebCoreMe moryTypes::RenderingStructures); 8151 memoryInstrumentation->addRootObject(gPercentHeightDescendantsMap, WebCoreMe moryTypes::RenderingStructures);
8152 memoryInstrumentation->addRootObject(gPositionedContainerMap, WebCoreMemoryT ypes::RenderingStructures); 8152 memoryInstrumentation->addRootObject(gPositionedContainerMap, WebCoreMemoryT ypes::RenderingStructures);
8153 memoryInstrumentation->addRootObject(gPercentHeightContainerMap, WebCoreMemo ryTypes::RenderingStructures); 8153 memoryInstrumentation->addRootObject(gPercentHeightContainerMap, WebCoreMemo ryTypes::RenderingStructures);
8154 memoryInstrumentation->addRootObject(gDelayedUpdateScrollInfoSet, WebCoreMem oryTypes::RenderingStructures); 8154 memoryInstrumentation->addRootObject(gDelayedUpdateScrollInfoSet, WebCoreMem oryTypes::RenderingStructures);
8155 } 8155 }
8156 8156
8157 } // namespace WebCore 8157 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698