OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006 Oliver Hunt <ojh16@student.canterbury.ac.nz> | 2 * Copyright (C) 2006 Oliver Hunt <ojh16@student.canterbury.ac.nz> |
3 * Copyright (C) 2006 Apple Computer Inc. | 3 * Copyright (C) 2006 Apple Computer Inc. |
4 * Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org> | 4 * Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org> |
5 * Copyright (C) Research In Motion Limited 2010. All rights reserved. | 5 * Copyright (C) Research In Motion Limited 2010. All rights reserved. |
6 * Copyright (C) 2011 Torch Mobile (Beijing) CO. Ltd. All rights reserved. | 6 * Copyright (C) 2011 Torch Mobile (Beijing) CO. Ltd. 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 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
130 } | 130 } |
131 | 131 |
132 InlineBox* SVGRootInlineBox::closestLeafChildForPosition(const LayoutPoint& poin
t) | 132 InlineBox* SVGRootInlineBox::closestLeafChildForPosition(const LayoutPoint& poin
t) |
133 { | 133 { |
134 InlineBox* firstLeaf = firstLeafChild(); | 134 InlineBox* firstLeaf = firstLeafChild(); |
135 InlineBox* lastLeaf = lastLeafChild(); | 135 InlineBox* lastLeaf = lastLeafChild(); |
136 if (firstLeaf == lastLeaf) | 136 if (firstLeaf == lastLeaf) |
137 return firstLeaf; | 137 return firstLeaf; |
138 | 138 |
139 // FIXME: Check for vertical text! | 139 // FIXME: Check for vertical text! |
140 InlineBox* closestLeaf = 0; | 140 InlineBox* closestLeaf = nullptr; |
141 for (InlineBox* leaf = firstLeaf; leaf; leaf = leaf->nextLeafChild()) { | 141 for (InlineBox* leaf = firstLeaf; leaf; leaf = leaf->nextLeafChild()) { |
142 if (!leaf->isSVGInlineTextBox()) | 142 if (!leaf->isSVGInlineTextBox()) |
143 continue; | 143 continue; |
144 if (point.y() < leaf->y()) | 144 if (point.y() < leaf->y()) |
145 continue; | 145 continue; |
146 if (point.y() > leaf->y() + leaf->virtualLogicalHeight()) | 146 if (point.y() > leaf->y() + leaf->virtualLogicalHeight()) |
147 continue; | 147 continue; |
148 | 148 |
149 closestLeaf = leaf; | 149 closestLeaf = leaf; |
150 if (point.x() < leaf->left() + leaf->logicalWidth()) | 150 if (point.x() < leaf->left() + leaf->logicalWidth()) |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
206 } | 206 } |
207 | 207 |
208 SVGInlineTextBox* firstTextBox = toSVGInlineTextBox(*first); | 208 SVGInlineTextBox* firstTextBox = toSVGInlineTextBox(*first); |
209 SVGInlineTextBox* lastTextBox = toSVGInlineTextBox(*last); | 209 SVGInlineTextBox* lastTextBox = toSVGInlineTextBox(*last); |
210 | 210 |
211 // Reordering is only necessary for BiDi text that is _absolutely_ posit
ioned. | 211 // Reordering is only necessary for BiDi text that is _absolutely_ posit
ioned. |
212 if (firstTextBox->len() == 1 && firstTextBox->len() == lastTextBox->len(
)) { | 212 if (firstTextBox->len() == 1 && firstTextBox->len() == lastTextBox->len(
)) { |
213 LayoutSVGInlineText& firstContext = toLayoutSVGInlineText(firstTextB
ox->layoutObject()); | 213 LayoutSVGInlineText& firstContext = toLayoutSVGInlineText(firstTextB
ox->layoutObject()); |
214 LayoutSVGInlineText& lastContext = toLayoutSVGInlineText(lastTextBox
->layoutObject()); | 214 LayoutSVGInlineText& lastContext = toLayoutSVGInlineText(lastTextBox
->layoutObject()); |
215 | 215 |
216 SVGTextLayoutAttributes* firstAttributes = 0; | 216 SVGTextLayoutAttributes* firstAttributes = nullptr; |
217 SVGTextLayoutAttributes* lastAttributes = 0; | 217 SVGTextLayoutAttributes* lastAttributes = nullptr; |
218 findFirstAndLastAttributesInVector(attributes, &firstContext, &lastC
ontext, firstAttributes, lastAttributes); | 218 findFirstAndLastAttributesInVector(attributes, &firstContext, &lastC
ontext, firstAttributes, lastAttributes); |
219 swapItemsInLayoutAttributes(firstAttributes, lastAttributes, firstTe
xtBox->start(), lastTextBox->start()); | 219 swapItemsInLayoutAttributes(firstAttributes, lastAttributes, firstTe
xtBox->start(), lastTextBox->start()); |
220 } | 220 } |
221 | 221 |
222 InlineBox* temp = *first; | 222 InlineBox* temp = *first; |
223 *first = *last; | 223 *first = *last; |
224 *last = temp; | 224 *last = temp; |
225 | 225 |
226 ++first; | 226 ++first; |
227 } | 227 } |
228 } | 228 } |
229 | 229 |
230 void SVGRootInlineBox::reorderValueLists(Vector<SVGTextLayoutAttributes*>& attri
butes) | 230 void SVGRootInlineBox::reorderValueLists(Vector<SVGTextLayoutAttributes*>& attri
butes) |
231 { | 231 { |
232 Vector<InlineBox*> leafBoxesInLogicalOrder; | 232 Vector<InlineBox*> leafBoxesInLogicalOrder; |
233 collectLeafBoxesInLogicalOrder(leafBoxesInLogicalOrder, reverseInlineBoxRang
eAndValueListsIfNeeded, &attributes); | 233 collectLeafBoxesInLogicalOrder(leafBoxesInLogicalOrder, reverseInlineBoxRang
eAndValueListsIfNeeded, &attributes); |
234 } | 234 } |
235 | 235 |
236 } // namespace blink | 236 } // namespace blink |
OLD | NEW |