OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org) |
3 * Copyright (C) 2003, 2004, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r
ight reserved. | 3 * Copyright (C) 2003, 2004, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r
ight reserved. |
4 * Copyright (C) 2010 Google Inc. All rights reserved. | 4 * Copyright (C) 2010 Google Inc. All rights reserved. |
5 * | 5 * |
6 * This library is free software; you can redistribute it and/or | 6 * This library is free software; you can redistribute it and/or |
7 * modify it under the terms of the GNU Library General Public | 7 * modify it under the terms of the GNU Library General Public |
8 * License as published by the Free Software Foundation; either | 8 * License as published by the Free Software Foundation; either |
9 * version 2 of the License, or (at your option) any later version. | 9 * version 2 of the License, or (at your option) any later version. |
10 * | 10 * |
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
276 if (r->m_object->isText()) | 276 if (r->m_object->isText()) |
277 box = createInlineBoxForText(*r, isOnlyRun); | 277 box = createInlineBoxForText(*r, isOnlyRun); |
278 else | 278 else |
279 box = createInlineBoxForLayoutObject(r->m_object, false, isOnlyRun); | 279 box = createInlineBoxForLayoutObject(r->m_object, false, isOnlyRun); |
280 r->m_box = box; | 280 r->m_box = box; |
281 | 281 |
282 ASSERT(box); | 282 ASSERT(box); |
283 if (!box) | 283 if (!box) |
284 continue; | 284 continue; |
285 | 285 |
286 if (!rootHasSelectedChildren && box->layoutObject().selectionState() !=
SelectionNone) | 286 if (!rootHasSelectedChildren && box->lineLayoutItem().selectionState() !
= SelectionNone) |
287 rootHasSelectedChildren = true; | 287 rootHasSelectedChildren = true; |
288 | 288 |
289 // If we have no parent box yet, or if the run is not simply a sibling, | 289 // If we have no parent box yet, or if the run is not simply a sibling, |
290 // then we need to construct inline boxes as necessary to properly enclo
se the | 290 // then we need to construct inline boxes as necessary to properly enclo
se the |
291 // run's inline box. Segments can only be siblings at the root level, as | 291 // run's inline box. Segments can only be siblings at the root level, as |
292 // they are positioned separately. | 292 // they are positioned separately. |
293 if (!parentBox || parentBox->layoutObject() != r->m_object->parent()) { | 293 if (!parentBox || (!parentBox->lineLayoutItem().isEqual(r->m_object->par
ent()))) { |
294 // Create new inline boxes all the way back to the appropriate inser
tion point. | 294 // Create new inline boxes all the way back to the appropriate inser
tion point. |
295 parentBox = createLineBoxes(r->m_object->parent(), lineInfo, box); | 295 parentBox = createLineBoxes(r->m_object->parent(), lineInfo, box); |
296 } else { | 296 } else { |
297 // Append the inline box to this line. | 297 // Append the inline box to this line. |
298 parentBox->addToLine(box); | 298 parentBox->addToLine(box); |
299 } | 299 } |
300 | 300 |
301 box->setBidiLevel(r->level()); | 301 box->setBidiLevel(r->level()); |
302 | 302 |
303 if (box->isInlineTextBox()) { | 303 if (box->isInlineTextBox()) { |
(...skipping 1755 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2059 LayoutUnit logicalLeft = logicalLeftOffsetForLine(logicalHeight(), false); | 2059 LayoutUnit logicalLeft = logicalLeftOffsetForLine(logicalHeight(), false); |
2060 LayoutUnit availableLogicalWidth = logicalRightOffsetForLine(logicalHeight()
, false) - logicalLeft; | 2060 LayoutUnit availableLogicalWidth = logicalRightOffsetForLine(logicalHeight()
, false) - logicalLeft; |
2061 updateLogicalWidthForAlignment(textAlign, 0, 0, logicalLeft, totalLogicalWid
th, availableLogicalWidth, 0); | 2061 updateLogicalWidthForAlignment(textAlign, 0, 0, logicalLeft, totalLogicalWid
th, availableLogicalWidth, 0); |
2062 | 2062 |
2063 if (!style()->isLeftToRightDirection()) | 2063 if (!style()->isLeftToRightDirection()) |
2064 return logicalWidth() - logicalLeft; | 2064 return logicalWidth() - logicalLeft; |
2065 return logicalLeft; | 2065 return logicalLeft; |
2066 } | 2066 } |
2067 | 2067 |
2068 } | 2068 } |
OLD | NEW |