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/RenderBox.cpp

Issue 256743006: [New Multicolumn] Make offsetLeft, offsetTop and getClientRects() behave. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebase master Created 6 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
« no previous file with comments | « Source/core/rendering/RenderBlock.h ('k') | Source/core/rendering/RenderFlowThread.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 1864 matching lines...) Expand 10 before | Expand all | Expand 10 after
1875 LayoutRect columnRect(frameRect()); 1875 LayoutRect columnRect(frameRect());
1876 block->adjustStartEdgeForWritingModeIncludingColumns(columnRect); 1876 block->adjustStartEdgeForWritingModeIncludingColumns(columnRect);
1877 offset += toSize(columnRect.location()); 1877 offset += toSize(columnRect.location());
1878 LayoutPoint columnPoint = block->flipForWritingModeIncludingColumns( point + offset); 1878 LayoutPoint columnPoint = block->flipForWritingModeIncludingColumns( point + offset);
1879 offset = toLayoutSize(block->flipForWritingModeIncludingColumns(toLa youtPoint(offset))); 1879 offset = toLayoutSize(block->flipForWritingModeIncludingColumns(toLa youtPoint(offset)));
1880 offset += o->columnOffset(columnPoint); 1880 offset += o->columnOffset(columnPoint);
1881 offset = block->flipForWritingMode(offset); 1881 offset = block->flipForWritingMode(offset);
1882 1882
1883 if (offsetDependsOnPoint) 1883 if (offsetDependsOnPoint)
1884 *offsetDependsOnPoint = true; 1884 *offsetDependsOnPoint = true;
1885 } else 1885 } else {
1886 offset += topLeftLocationOffset(); 1886 offset += topLeftLocationOffset();
1887 if (o->isRenderFlowThread()) {
1888 // So far the point has been in flow thread coordinates (i.e. as if everything in
1889 // the fragmentation context lived in one tall single column). C onvert it to a
1890 // visual point now.
1891 LayoutPoint pointInContainer = point + offset;
1892 offset += o->columnOffset(pointInContainer);
1893 if (offsetDependsOnPoint)
1894 *offsetDependsOnPoint = true;
1895 }
1896 }
1887 } 1897 }
1888 1898
1889 if (o->hasOverflowClip()) 1899 if (o->hasOverflowClip())
1890 offset -= toRenderBox(o)->scrolledContentOffset(); 1900 offset -= toRenderBox(o)->scrolledContentOffset();
1891 1901
1892 if (style()->position() == AbsolutePosition && o->isInFlowPositioned() && o- >isRenderInline()) 1902 if (style()->position() == AbsolutePosition && o->isInFlowPositioned() && o- >isRenderInline())
1893 offset += toRenderInline(o)->offsetForInFlowPositionedInline(*this); 1903 offset += toRenderInline(o)->offsetForInFlowPositionedInline(*this);
1894 1904
1895 if (offsetDependsOnPoint)
1896 *offsetDependsOnPoint |= o->isRenderFlowThread();
1897
1898 return offset; 1905 return offset;
1899 } 1906 }
1900 1907
1901 InlineBox* RenderBox::createInlineBox() 1908 InlineBox* RenderBox::createInlineBox()
1902 { 1909 {
1903 return new InlineBox(*this); 1910 return new InlineBox(*this);
1904 } 1911 }
1905 1912
1906 void RenderBox::dirtyLineBoxes(bool fullLayout) 1913 void RenderBox::dirtyLineBoxes(bool fullLayout)
1907 { 1914 {
(...skipping 2747 matching lines...) Expand 10 before | Expand all | Expand 10 after
4655 return 0; 4662 return 0;
4656 4663
4657 if (!layoutState && !flowThreadContainingBlock()) 4664 if (!layoutState && !flowThreadContainingBlock())
4658 return 0; 4665 return 0;
4659 4666
4660 RenderBlock* containerBlock = containingBlock(); 4667 RenderBlock* containerBlock = containingBlock();
4661 return containerBlock->offsetFromLogicalTopOfFirstPage() + logicalTop(); 4668 return containerBlock->offsetFromLogicalTopOfFirstPage() + logicalTop();
4662 } 4669 }
4663 4670
4664 } // namespace WebCore 4671 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/rendering/RenderBlock.h ('k') | Source/core/rendering/RenderFlowThread.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698