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

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

Issue 300843010: Change clip rect computation for multicol (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « LayoutTests/TestExpectations ('k') | Source/core/rendering/RenderLayer.cpp » ('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) 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 1865 matching lines...) Expand 10 before | Expand all | Expand 10 after
1876 LayoutUnit logicalLeftOffset = (isHorizontalWritingMode() ? colRect.x() : colRect.y()) - logicalLeftOffsetForContent(); 1876 LayoutUnit logicalLeftOffset = (isHorizontalWritingMode() ? colRect.x() : colRect.y()) - logicalLeftOffsetForContent();
1877 LayoutSize offset = isHorizontalWritingMode() ? LayoutSize(logicalLeftOf fset, currLogicalTopOffset) : LayoutSize(currLogicalTopOffset, logicalLeftOffset ); 1877 LayoutSize offset = isHorizontalWritingMode() ? LayoutSize(logicalLeftOf fset, currLogicalTopOffset) : LayoutSize(currLogicalTopOffset, logicalLeftOffset );
1878 if (colInfo->progressionAxis() == ColumnInfo::BlockAxis) { 1878 if (colInfo->progressionAxis() == ColumnInfo::BlockAxis) {
1879 if (isHorizontalWritingMode()) 1879 if (isHorizontalWritingMode())
1880 offset.expand(0, colRect.y() - borderTop() - paddingTop()); 1880 offset.expand(0, colRect.y() - borderTop() - paddingTop());
1881 else 1881 else
1882 offset.expand(colRect.x() - borderLeft() - paddingLeft(), 0); 1882 offset.expand(colRect.x() - borderLeft() - paddingLeft(), 0);
1883 } 1883 }
1884 colRect.moveBy(paintOffset); 1884 colRect.moveBy(paintOffset);
1885 PaintInfo info(paintInfo); 1885 PaintInfo info(paintInfo);
1886 info.rect.intersect(pixelSnappedIntRect(colRect)); 1886 info.rect.intersect(enclosingIntRect(colRect));
1887 1887
1888 if (!info.rect.isEmpty()) { 1888 if (!info.rect.isEmpty()) {
1889 GraphicsContextStateSaver stateSaver(*context); 1889 GraphicsContextStateSaver stateSaver(*context);
1890 LayoutRect clipRect(colRect); 1890 LayoutRect clipRect(colRect);
1891 1891
1892 if (i < colCount - 1) { 1892 if (i < colCount - 1) {
1893 if (isHorizontalWritingMode()) 1893 if (isHorizontalWritingMode())
1894 clipRect.expand(colGap / 2, 0); 1894 clipRect.expand(colGap / 2, 0);
1895 else 1895 else
1896 clipRect.expand(0, colGap / 2); 1896 clipRect.expand(0, colGap / 2);
1897 } 1897 }
1898 // Each strip pushes a clip, since column boxes are specified as bei ng 1898 // Each strip pushes a clip, since column boxes are specified as bei ng
1899 // like overflow:hidden. 1899 // like overflow:hidden.
1900 // FIXME: Content and column rules that extend outside column boxes at the edges of the multi-column element 1900 // FIXME: Content and column rules that extend outside column boxes at the edges of the multi-column element
1901 // are clipped according to the 'overflow' property. 1901 // are clipped according to the 'overflow' property.
1902 context->clip(pixelSnappedIntRect(clipRect)); 1902 context->clip(enclosingIntRect(clipRect));
1903 1903
1904 // Adjust our x and y when painting. 1904 // Adjust our x and y when painting.
1905 LayoutPoint adjustedPaintOffset = paintOffset + offset; 1905 LayoutPoint adjustedPaintOffset = paintOffset + offset;
1906 if (paintingFloats) 1906 if (paintingFloats)
1907 paintFloats(info, adjustedPaintOffset, paintInfo.phase == PaintP haseSelection || paintInfo.phase == PaintPhaseTextClip); 1907 paintFloats(info, adjustedPaintOffset, paintInfo.phase == PaintP haseSelection || paintInfo.phase == PaintPhaseTextClip);
1908 else 1908 else
1909 paintContents(info, adjustedPaintOffset); 1909 paintContents(info, adjustedPaintOffset);
1910 } 1910 }
1911 1911
1912 LayoutUnit blockDelta = (isHorizontalWritingMode() ? colRect.height() : colRect.width()); 1912 LayoutUnit blockDelta = (isHorizontalWritingMode() ? colRect.height() : colRect.width());
(...skipping 3104 matching lines...) Expand 10 before | Expand all | Expand 10 after
5017 void RenderBlock::showLineTreeAndMark(const InlineBox* markedBox1, const char* m arkedLabel1, const InlineBox* markedBox2, const char* markedLabel2, const Render Object* obj) const 5017 void RenderBlock::showLineTreeAndMark(const InlineBox* markedBox1, const char* m arkedLabel1, const InlineBox* markedBox2, const char* markedLabel2, const Render Object* obj) const
5018 { 5018 {
5019 showRenderObject(); 5019 showRenderObject();
5020 for (const RootInlineBox* root = firstRootBox(); root; root = root->nextRoot Box()) 5020 for (const RootInlineBox* root = firstRootBox(); root; root = root->nextRoot Box())
5021 root->showLineTreeAndMark(markedBox1, markedLabel1, markedBox2, markedLa bel2, obj, 1); 5021 root->showLineTreeAndMark(markedBox1, markedLabel1, markedBox2, markedLa bel2, obj, 1);
5022 } 5022 }
5023 5023
5024 #endif 5024 #endif
5025 5025
5026 } // namespace WebCore 5026 } // namespace WebCore
OLDNEW
« no previous file with comments | « LayoutTests/TestExpectations ('k') | Source/core/rendering/RenderLayer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698