| 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 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 111 | 111 |
| 112 for (LayoutMultiColumnSetList::const_iterator iter = | 112 for (LayoutMultiColumnSetList::const_iterator iter = |
| 113 m_multiColumnSetList.begin(); | 113 m_multiColumnSetList.begin(); |
| 114 iter != m_multiColumnSetList.end(); ++iter) { | 114 iter != m_multiColumnSetList.end(); ++iter) { |
| 115 LayoutMultiColumnSet* columnSet = *iter; | 115 LayoutMultiColumnSet* columnSet = *iter; |
| 116 computedValues.m_extent += columnSet->logicalHeightInFlowThread(); | 116 computedValues.m_extent += columnSet->logicalHeightInFlowThread(); |
| 117 } | 117 } |
| 118 } | 118 } |
| 119 | 119 |
| 120 void LayoutFlowThread::absoluteQuadsForDescendant(const LayoutBox& descendant, | 120 void LayoutFlowThread::absoluteQuadsForDescendant(const LayoutBox& descendant, |
| 121 Vector<FloatQuad>& quads) { | 121 Vector<FloatQuad>& quads, |
| 122 MapCoordinatesFlags mode) { |
| 122 LayoutPoint offsetFromFlowThread; | 123 LayoutPoint offsetFromFlowThread; |
| 123 for (const LayoutObject* object = &descendant; object != this;) { | 124 for (const LayoutObject* object = &descendant; object != this;) { |
| 124 const LayoutObject* container = object->container(); | 125 const LayoutObject* container = object->container(); |
| 125 offsetFromFlowThread += object->offsetFromContainer(container); | 126 offsetFromFlowThread += object->offsetFromContainer(container); |
| 126 object = container; | 127 object = container; |
| 127 } | 128 } |
| 128 LayoutRect boundingRectInFlowThread(offsetFromFlowThread, | 129 LayoutRect boundingRectInFlowThread(offsetFromFlowThread, |
| 129 descendant.frameRect().size()); | 130 descendant.frameRect().size()); |
| 130 // Set up a fragments relative to the descendant, in the flow thread | 131 // Set up a fragments relative to the descendant, in the flow thread |
| 131 // coordinate space, and convert each of them, individually, to absolute | 132 // coordinate space, and convert each of them, individually, to absolute |
| 132 // coordinates. | 133 // coordinates. |
| 133 for (FragmentainerIterator iterator(*this, boundingRectInFlowThread); | 134 for (FragmentainerIterator iterator(*this, boundingRectInFlowThread); |
| 134 !iterator.atEnd(); iterator.advance()) { | 135 !iterator.atEnd(); iterator.advance()) { |
| 135 LayoutRect fragment = boundingRectInFlowThread; | 136 LayoutRect fragment = boundingRectInFlowThread; |
| 136 // We use inclusiveIntersect() because intersect() would reset the | 137 // We use inclusiveIntersect() because intersect() would reset the |
| 137 // coordinates for zero-height objects. | 138 // coordinates for zero-height objects. |
| 138 fragment.inclusiveIntersect(iterator.fragmentainerInFlowThread()); | 139 fragment.inclusiveIntersect(iterator.fragmentainerInFlowThread()); |
| 139 fragment.moveBy(-offsetFromFlowThread); | 140 fragment.moveBy(-offsetFromFlowThread); |
| 140 quads.append(descendant.localToAbsoluteQuad(FloatRect(fragment))); | 141 quads.append(descendant.localToAbsoluteQuad(FloatRect(fragment), mode)); |
| 141 } | 142 } |
| 142 } | 143 } |
| 143 | 144 |
| 144 bool LayoutFlowThread::nodeAtPoint(HitTestResult& result, | 145 bool LayoutFlowThread::nodeAtPoint(HitTestResult& result, |
| 145 const HitTestLocation& locationInContainer, | 146 const HitTestLocation& locationInContainer, |
| 146 const LayoutPoint& accumulatedOffset, | 147 const LayoutPoint& accumulatedOffset, |
| 147 HitTestAction hitTestAction) { | 148 HitTestAction hitTestAction) { |
| 148 if (hitTestAction == HitTestBlockBackground) | 149 if (hitTestAction == HitTestBlockBackground) |
| 149 return false; | 150 return false; |
| 150 return LayoutBlockFlow::nodeAtPoint(result, locationInContainer, | 151 return LayoutBlockFlow::nodeAtPoint(result, locationInContainer, |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 228 | 229 |
| 229 void LayoutFlowThread::MultiColumnSetSearchAdapter::collectIfNeeded( | 230 void LayoutFlowThread::MultiColumnSetSearchAdapter::collectIfNeeded( |
| 230 const MultiColumnSetInterval& interval) { | 231 const MultiColumnSetInterval& interval) { |
| 231 if (m_result) | 232 if (m_result) |
| 232 return; | 233 return; |
| 233 if (interval.low() <= m_offset && interval.high() > m_offset) | 234 if (interval.low() <= m_offset && interval.high() > m_offset) |
| 234 m_result = interval.data(); | 235 m_result = interval.data(); |
| 235 } | 236 } |
| 236 | 237 |
| 237 } // namespace blink | 238 } // namespace blink |
| OLD | NEW |