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

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: Add FIXME, as requested. 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 1756 matching lines...) Expand 10 before | Expand all | Expand 10 after
1767 if (!hasColumns() && (recomputeFloats || isRoot() || expandsToEncloseOverhan gingFloats() || hasSelfPaintingLayer())) 1767 if (!hasColumns() && (recomputeFloats || isRoot() || expandsToEncloseOverhan gingFloats() || hasSelfPaintingLayer()))
1768 addOverflowFromFloats(); 1768 addOverflowFromFloats();
1769 1769
1770 // Add in the overflow from positioned objects. 1770 // Add in the overflow from positioned objects.
1771 addOverflowFromPositionedObjects(); 1771 addOverflowFromPositionedObjects();
1772 1772
1773 if (hasOverflowClip()) { 1773 if (hasOverflowClip()) {
1774 // When we have overflow clip, propagate the original spillout since it will include collapsed bottom margins 1774 // When we have overflow clip, propagate the original spillout since it will include collapsed bottom margins
1775 // and bottom padding. Set the axis we don't care about to be 1, since we want this overflow to always 1775 // and bottom padding. Set the axis we don't care about to be 1, since we want this overflow to always
1776 // be considered reachable. 1776 // be considered reachable.
1777 LayoutRect clientRect(clientBoxRect()); 1777 LayoutRect clientRect(noOverflowRect());
1778 LayoutRect rectToApply; 1778 LayoutRect rectToApply;
1779 if (isHorizontalWritingMode()) 1779 if (isHorizontalWritingMode())
1780 rectToApply = LayoutRect(clientRect.x(), clientRect.y(), 1, max<Layo utUnit>(0, oldClientAfterEdge - clientRect.y())); 1780 rectToApply = LayoutRect(clientRect.x(), clientRect.y(), 1, max<Layo utUnit>(0, oldClientAfterEdge - clientRect.y()));
1781 else 1781 else
1782 rectToApply = LayoutRect(clientRect.x(), clientRect.y(), max<LayoutU nit>(0, oldClientAfterEdge - clientRect.x()), 1); 1782 rectToApply = LayoutRect(clientRect.x(), clientRect.y(), max<LayoutU nit>(0, oldClientAfterEdge - clientRect.x()), 1);
1783 addLayoutOverflow(rectToApply); 1783 addLayoutOverflow(rectToApply);
1784 if (hasRenderOverflow()) 1784 if (hasRenderOverflow())
1785 m_overflow->setLayoutClientAfterEdge(oldClientAfterEdge); 1785 m_overflow->setLayoutClientAfterEdge(oldClientAfterEdge);
1786 } 1786 }
1787 1787
1788 // Allow our overflow to catch cases where the caret in an empty editable el ement with negative text indent needs to get painted. 1788 // Allow our overflow to catch cases where the caret in an empty editable el ement with negative text indent needs to get painted.
1789 LayoutUnit textIndent = textIndentOffset(); 1789 LayoutUnit textIndent = textIndentOffset();
1790 if (textIndent < 0) { 1790 if (textIndent < 0) {
1791 LayoutRect clientRect(clientBoxRect()); 1791 LayoutRect clientRect(noOverflowRect());
1792 LayoutRect rectToApply = LayoutRect(clientRect.x() + min<LayoutUnit>(0, textIndent), clientRect.y(), clientRect.width() - min<LayoutUnit>(0, textIndent) , clientRect.height()); 1792 LayoutRect rectToApply = LayoutRect(clientRect.x() + min<LayoutUnit>(0, textIndent), clientRect.y(), clientRect.width() - min<LayoutUnit>(0, textIndent) , clientRect.height());
1793 addVisualOverflow(rectToApply); 1793 addVisualOverflow(rectToApply);
1794 } 1794 }
1795 1795
1796 // Add visual overflow from box-shadow and border-image-outset. 1796 // Add visual overflow from box-shadow and border-image-outset.
1797 addVisualEffectOverflow(); 1797 addVisualEffectOverflow();
1798 1798
1799 // Add visual overflow from theme. 1799 // Add visual overflow from theme.
1800 addVisualOverflowFromTheme(); 1800 addVisualOverflowFromTheme();
1801 1801
(...skipping 6439 matching lines...) Expand 10 before | Expand all | Expand 10 after
8241 } 8241 }
8242 8242
8243 String ValueToString<RenderBlock::FloatingObject*>::string(const RenderBlock::Fl oatingObject* floatingObject) 8243 String ValueToString<RenderBlock::FloatingObject*>::string(const RenderBlock::Fl oatingObject* floatingObject)
8244 { 8244 {
8245 return String::format("%p (%dx%d %dx%d)", floatingObject, floatingObject->fr ameRect().pixelSnappedX(), floatingObject->frameRect().pixelSnappedY(), floating Object->frameRect().pixelSnappedMaxX(), floatingObject->frameRect().pixelSnapped MaxY()); 8245 return String::format("%p (%dx%d %dx%d)", floatingObject, floatingObject->fr ameRect().pixelSnappedX(), floatingObject->frameRect().pixelSnappedY(), floating Object->frameRect().pixelSnappedMaxX(), floatingObject->frameRect().pixelSnapped MaxY());
8246 } 8246 }
8247 8247
8248 #endif 8248 #endif
8249 8249
8250 } // namespace WebCore 8250 } // 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