OLD | NEW |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |