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

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

Issue 176953008: Include the outline into the visual overflow (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fixed dumb bug caught by Mac. Created 6 years, 9 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 | « Source/core/rendering/RenderObject.cpp ('k') | Source/core/rendering/RenderReplaced.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) 2011 Adobe Systems Incorporated. All rights reserved. 2 * Copyright (C) 2011 Adobe Systems Incorporated. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above 8 * 1. Redistributions of source code must retain the above
9 * copyright notice, this list of conditions and the following 9 * copyright notice, this list of conditions and the following
10 * disclaimer. 10 * disclaimer.
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 LayoutRect RenderRegion::overflowRectForFlowThreadPortion(const LayoutRect& flow ThreadPortionRect, bool isFirstPortion, bool isLastPortion) const 74 LayoutRect RenderRegion::overflowRectForFlowThreadPortion(const LayoutRect& flow ThreadPortionRect, bool isFirstPortion, bool isLastPortion) const
75 { 75 {
76 ASSERT(isValid()); 76 ASSERT(isValid());
77 77
78 if (hasOverflowClip()) 78 if (hasOverflowClip())
79 return flowThreadPortionRect; 79 return flowThreadPortionRect;
80 80
81 LayoutRect flowThreadOverflow = m_flowThread->visualOverflowRect(); 81 LayoutRect flowThreadOverflow = m_flowThread->visualOverflowRect();
82 82
83 // Only clip along the flow thread axis. 83 // Only clip along the flow thread axis.
84 LayoutUnit outlineSize = maximalOutlineSize(PaintPhaseOutline);
85 LayoutRect clipRect; 84 LayoutRect clipRect;
86 if (m_flowThread->isHorizontalWritingMode()) { 85 if (m_flowThread->isHorizontalWritingMode()) {
87 LayoutUnit minY = isFirstPortion ? (flowThreadOverflow.y() - outlineSize ) : flowThreadPortionRect.y(); 86 LayoutUnit minY = isFirstPortion ? flowThreadOverflow.y() : flowThreadPo rtionRect.y();
88 LayoutUnit maxY = isLastPortion ? max(flowThreadPortionRect.maxY(), flow ThreadOverflow.maxY()) + outlineSize : flowThreadPortionRect.maxY(); 87 LayoutUnit maxY = isLastPortion ? max(flowThreadPortionRect.maxY(), flow ThreadOverflow.maxY()) : flowThreadPortionRect.maxY();
89 LayoutUnit minX = min(flowThreadPortionRect.x(), flowThreadOverflow.x() - outlineSize); 88 LayoutUnit minX = min(flowThreadPortionRect.x(), flowThreadOverflow.x()) ;
90 LayoutUnit maxX = max(flowThreadPortionRect.maxX(), (flowThreadOverflow. maxX() + outlineSize)); 89 LayoutUnit maxX = max(flowThreadPortionRect.maxX(), flowThreadOverflow.m axX());
91 clipRect = LayoutRect(minX, minY, maxX - minX, maxY - minY); 90 clipRect = LayoutRect(minX, minY, maxX - minX, maxY - minY);
92 } else { 91 } else {
93 LayoutUnit minX = isFirstPortion ? (flowThreadOverflow.x() - outlineSize ) : flowThreadPortionRect.x(); 92 LayoutUnit minX = isFirstPortion ? flowThreadOverflow.x() : flowThreadPo rtionRect.x();
94 LayoutUnit maxX = isLastPortion ? max(flowThreadPortionRect.maxX(), flow ThreadOverflow.maxX()) + outlineSize : flowThreadPortionRect.maxX(); 93 LayoutUnit maxX = isLastPortion ? max(flowThreadPortionRect.maxX(), flow ThreadOverflow.maxX()) : flowThreadPortionRect.maxX();
95 LayoutUnit minY = min(flowThreadPortionRect.y(), (flowThreadOverflow.y() - outlineSize)); 94 LayoutUnit minY = min(flowThreadPortionRect.y(), (flowThreadOverflow.y() ));
96 LayoutUnit maxY = max(flowThreadPortionRect.y(), (flowThreadOverflow.max Y() + outlineSize)); 95 LayoutUnit maxY = max(flowThreadPortionRect.y(), (flowThreadOverflow.max Y()));
97 clipRect = LayoutRect(minX, minY, maxX - minX, maxY - minY); 96 clipRect = LayoutRect(minX, minY, maxX - minX, maxY - minY);
98 } 97 }
99 98
100 return clipRect; 99 return clipRect;
101 } 100 }
102 101
103 LayoutUnit RenderRegion::pageLogicalTopForOffset(LayoutUnit /* offset */) const 102 LayoutUnit RenderRegion::pageLogicalTopForOffset(LayoutUnit /* offset */) const
104 { 103 {
105 return flowThread()->isHorizontalWritingMode() ? flowThreadPortionRect().y() : flowThreadPortionRect().x(); 104 return flowThread()->isHorizontalWritingMode() ? flowThreadPortionRect().y() : flowThreadPortionRect().x();
106 } 105 }
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 if (!isValid()) { 216 if (!isValid()) {
218 RenderBlockFlow::computeIntrinsicLogicalWidths(minLogicalWidth, maxLogic alWidth); 217 RenderBlockFlow::computeIntrinsicLogicalWidths(minLogicalWidth, maxLogic alWidth);
219 return; 218 return;
220 } 219 }
221 220
222 minLogicalWidth = m_flowThread->minPreferredLogicalWidth(); 221 minLogicalWidth = m_flowThread->minPreferredLogicalWidth();
223 maxLogicalWidth = m_flowThread->maxPreferredLogicalWidth(); 222 maxLogicalWidth = m_flowThread->maxPreferredLogicalWidth();
224 } 223 }
225 224
226 } // namespace WebCore 225 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/rendering/RenderObject.cpp ('k') | Source/core/rendering/RenderReplaced.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698