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

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

Issue 1459943002: Clip abspos descendants correctly in all columns (not just the first). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: code review - possible alternative Created 5 years 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) 2005 Allan Sandfeld Jensen (kde@carewolf.com) 4 * (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com)
5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com) 5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com)
6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv ed. 6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv ed.
7 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. 7 * Copyright (C) 2013 Adobe Systems Incorporated. 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 1673 matching lines...) Expand 10 before | Expand all | Expand 10 after
1684 } 1684 }
1685 1685
1686 LayoutSize LayoutBox::offsetFromContainer(const LayoutObject* o, const LayoutPoi nt& point, bool* offsetDependsOnPoint) const 1686 LayoutSize LayoutBox::offsetFromContainer(const LayoutObject* o, const LayoutPoi nt& point, bool* offsetDependsOnPoint) const
1687 { 1687 {
1688 ASSERT(o == container()); 1688 ASSERT(o == container());
1689 1689
1690 LayoutSize offset; 1690 LayoutSize offset;
1691 if (isInFlowPositioned()) 1691 if (isInFlowPositioned())
1692 offset += offsetForInFlowPosition(); 1692 offset += offsetForInFlowPosition();
1693 1693
1694 if (!isInline() || isReplaced()) { 1694 if (!isInline() || isReplaced())
1695 offset += topLeftLocationOffset(); 1695 offset += topLeftLocationOffset();
1696 if (o->isLayoutFlowThread()) {
1697 // So far the point has been in flow thread coordinates (i.e. as if everything in
1698 // the fragmentation context lived in one tall single column). Conve rt it to a
1699 // visual point now.
1700 LayoutPoint pointInContainer = point + offset;
1701 offset += o->columnOffset(pointInContainer);
1702 if (offsetDependsOnPoint)
1703 *offsetDependsOnPoint = true;
1704 }
1705 }
1706 1696
1707 if (o->hasOverflowClip()) 1697 if (o->hasOverflowClip())
1708 offset -= toLayoutBox(o)->scrolledContentOffset(); 1698 offset -= toLayoutBox(o)->scrolledContentOffset();
1709 1699
1710 if (style()->position() == AbsolutePosition && o->isInFlowPositioned() && o- >isLayoutInline()) 1700 if (style()->position() == AbsolutePosition && o->isInFlowPositioned() && o- >isLayoutInline())
1711 offset += toLayoutInline(o)->offsetForInFlowPositionedInline(*this); 1701 offset += toLayoutInline(o)->offsetForInFlowPositionedInline(*this);
1712 1702
1713 return offset; 1703 return offset;
1714 } 1704 }
1715 1705
(...skipping 3134 matching lines...) Expand 10 before | Expand all | Expand 10 after
4850 StyleImage* borderImage = style()->borderImage().image(); 4840 StyleImage* borderImage = style()->borderImage().image();
4851 return borderImage && borderImage->canRender() && borderImage->isLoaded(); 4841 return borderImage && borderImage->canRender() && borderImage->isLoaded();
4852 } 4842 }
4853 4843
4854 ShapeOutsideInfo* LayoutBox::shapeOutsideInfo() const 4844 ShapeOutsideInfo* LayoutBox::shapeOutsideInfo() const
4855 { 4845 {
4856 return ShapeOutsideInfo::isEnabledFor(*this) ? ShapeOutsideInfo::info(*this) : nullptr; 4846 return ShapeOutsideInfo::isEnabledFor(*this) ? ShapeOutsideInfo::info(*this) : nullptr;
4857 } 4847 }
4858 4848
4859 } // namespace blink 4849 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698