Chromium Code Reviews| 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().isText() && LineLa youtText(box->lineLayoutItem()).selectionState() != SelectionNone) |
|
leviw_travelin_and_unemployed
2015/11/18 18:41:41
selectionState exists for non-Text objects. Why do
| |
| 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 |