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

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

Issue 2750153002: getClientRects() shouldn't clip against any ancestors. (Closed)
Patch Set: Document tests. Use width/height instead of right/bottom, since that's easier to follow. Created 3 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
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 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 LayoutRect boundingRectInFlowThread(offsetFromFlowThread, 142 LayoutRect boundingRectInFlowThread(offsetFromFlowThread,
143 descendant.frameRect().size()); 143 descendant.frameRect().size());
144 // Set up a fragments relative to the descendant, in the flow thread 144 // Set up a fragments relative to the descendant, in the flow thread
145 // coordinate space, and convert each of them, individually, to absolute 145 // coordinate space, and convert each of them, individually, to absolute
146 // coordinates. 146 // coordinates.
147 for (FragmentainerIterator iterator(*this, boundingRectInFlowThread); 147 for (FragmentainerIterator iterator(*this, boundingRectInFlowThread);
148 !iterator.atEnd(); iterator.advance()) { 148 !iterator.atEnd(); iterator.advance()) {
149 LayoutRect fragment = boundingRectInFlowThread; 149 LayoutRect fragment = boundingRectInFlowThread;
150 // We use inclusiveIntersect() because intersect() would reset the 150 // We use inclusiveIntersect() because intersect() would reset the
151 // coordinates for zero-height objects. 151 // coordinates for zero-height objects.
152 fragment.inclusiveIntersect(iterator.fragmentainerInFlowThread()); 152 LayoutRect clipRect = iterator.clipRectInFlowThread(
153 MultiColumnFragmentainerGroup::BlockDirectionAxis);
154 fragment.inclusiveIntersect(clipRect);
153 fragment.moveBy(-offsetFromFlowThread); 155 fragment.moveBy(-offsetFromFlowThread);
154 quads.push_back(descendant.localToAbsoluteQuad(FloatRect(fragment), mode)); 156 quads.push_back(descendant.localToAbsoluteQuad(FloatRect(fragment), mode));
155 } 157 }
156 } 158 }
157 159
158 bool LayoutFlowThread::nodeAtPoint(HitTestResult& result, 160 bool LayoutFlowThread::nodeAtPoint(HitTestResult& result,
159 const HitTestLocation& locationInContainer, 161 const HitTestLocation& locationInContainer,
160 const LayoutPoint& accumulatedOffset, 162 const LayoutPoint& accumulatedOffset,
161 HitTestAction hitTestAction) { 163 HitTestAction hitTestAction) {
162 if (hitTestAction == HitTestBlockBackground) 164 if (hitTestAction == HitTestBlockBackground)
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 244
243 void LayoutFlowThread::MultiColumnSetSearchAdapter::collectIfNeeded( 245 void LayoutFlowThread::MultiColumnSetSearchAdapter::collectIfNeeded(
244 const MultiColumnSetInterval& interval) { 246 const MultiColumnSetInterval& interval) {
245 if (m_result) 247 if (m_result)
246 return; 248 return;
247 if (interval.low() <= m_offset && interval.high() > m_offset) 249 if (interval.low() <= m_offset && interval.high() > m_offset)
248 m_result = interval.data(); 250 m_result = interval.data();
249 } 251 }
250 252
251 } // namespace blink 253 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698