Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. | 2 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * This library is free software; you can redistribute it and/or | 4 * This library is free software; you can redistribute it and/or |
| 5 * modify it under the terms of the GNU Library General Public | 5 * modify it under the terms of the GNU Library General Public |
| 6 * License as published by the Free Software Foundation; either | 6 * License as published by the Free Software Foundation; either |
| 7 * version 2 of the License, or (at your option) any later version. | 7 * version 2 of the License, or (at your option) any later version. |
| 8 * | 8 * |
| 9 * This library is distributed in the hope that it will be useful, | 9 * This library is distributed in the hope that it will be useful, |
| 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| (...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 410 logicalLeft += flow->marginLogicalLeft(); | 410 logicalLeft += flow->marginLogicalLeft(); |
| 411 if (knownToHaveNoOverflow()) | 411 if (knownToHaveNoOverflow()) |
| 412 minLogicalLeft = min(logicalLeft, minLogicalLeft); | 412 minLogicalLeft = min(logicalLeft, minLogicalLeft); |
| 413 logicalLeft = flow->placeBoxesInInlineDirection(logicalLeft, nee dsWordSpacing, textBoxDataMap); | 413 logicalLeft = flow->placeBoxesInInlineDirection(logicalLeft, nee dsWordSpacing, textBoxDataMap); |
| 414 if (knownToHaveNoOverflow()) | 414 if (knownToHaveNoOverflow()) |
| 415 maxLogicalRight = max(logicalLeft, maxLogicalRight); | 415 maxLogicalRight = max(logicalLeft, maxLogicalRight); |
| 416 logicalLeft += flow->marginLogicalRight(); | 416 logicalLeft += flow->marginLogicalRight(); |
| 417 } else if (!curr->renderer().isListMarker() || toRenderListMarker(cu rr->renderer()).isInside()) { | 417 } else if (!curr->renderer().isListMarker() || toRenderListMarker(cu rr->renderer()).isInside()) { |
| 418 // The box can have a different writing-mode than the overall li ne, so this is a bit complicated. | 418 // The box can have a different writing-mode than the overall li ne, so this is a bit complicated. |
| 419 // Just get all the physical margin and overflow values by hand based off |isVertical|. | 419 // Just get all the physical margin and overflow values by hand based off |isVertical|. |
| 420 TextDirection dir = renderer().style()->direction(); | |
| 421 bool isDetailsMarker = curr->renderer().isDetailsMarker(); | |
| 422 | |
| 420 LayoutUnit logicalLeftMargin = isHorizontal() ? curr->boxModelOb ject()->marginLeft() : curr->boxModelObject()->marginTop(); | 423 LayoutUnit logicalLeftMargin = isHorizontal() ? curr->boxModelOb ject()->marginLeft() : curr->boxModelObject()->marginTop(); |
| 421 LayoutUnit logicalRightMargin = isHorizontal() ? curr->boxModelO bject()->marginRight() : curr->boxModelObject()->marginBottom(); | 424 LayoutUnit logicalRightMargin = isHorizontal() ? curr->boxModelO bject()->marginRight() : curr->boxModelObject()->marginBottom(); |
| 422 | 425 |
| 423 logicalLeft += logicalLeftMargin; | 426 if (isDetailsMarker) |
|
eseidel
2014/05/30 00:33:25
I don't understand why details markers are special
Habib Virji
2014/06/03 14:23:46
@eseidel: RenderListItem::updateMarkerLocation (ht
leviw_travelin_and_unemployed
2014/06/05 22:25:43
I'd either expect the list and details code to be
| |
| 427 logicalLeft += (dir == LTR) ? logicalLeftMargin : logicalRig htMargin; | |
| 428 else | |
| 429 logicalLeft += logicalLeftMargin; | |
| 424 curr->setLogicalLeft(logicalLeft); | 430 curr->setLogicalLeft(logicalLeft); |
| 425 if (knownToHaveNoOverflow()) | 431 if (knownToHaveNoOverflow()) |
| 426 minLogicalLeft = min(logicalLeft, minLogicalLeft); | 432 minLogicalLeft = min(logicalLeft, minLogicalLeft); |
| 427 logicalLeft += curr->logicalWidth(); | 433 logicalLeft += curr->logicalWidth(); |
| 428 if (knownToHaveNoOverflow()) | 434 if (knownToHaveNoOverflow()) |
| 429 maxLogicalRight = max(logicalLeft, maxLogicalRight); | 435 maxLogicalRight = max(logicalLeft, maxLogicalRight); |
| 430 logicalLeft += logicalRightMargin; | 436 if (isDetailsMarker) |
| 437 logicalLeft += (dir == LTR) ? logicalRightMargin : logicalLe ftMargin; | |
| 438 else | |
| 439 logicalLeft += logicalRightMargin; | |
| 431 // If we encounter any space after this inline block then ensure it is treated as the space between two words. | 440 // If we encounter any space after this inline block then ensure it is treated as the space between two words. |
| 432 needsWordSpacing = true; | 441 needsWordSpacing = true; |
| 433 } | 442 } |
| 434 } | 443 } |
| 435 } | 444 } |
| 436 return logicalLeft; | 445 return logicalLeft; |
| 437 } | 446 } |
| 438 | 447 |
| 439 bool InlineFlowBox::requiresIdeographicBaseline(const GlyphOverflowAndFallbackFo ntsMap& textBoxDataMap) const | 448 bool InlineFlowBox::requiresIdeographicBaseline(const GlyphOverflowAndFallbackFo ntsMap& textBoxDataMap) const |
| 440 { | 449 { |
| (...skipping 1215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1656 ASSERT(child->prevOnLine() == prev); | 1665 ASSERT(child->prevOnLine() == prev); |
| 1657 prev = child; | 1666 prev = child; |
| 1658 } | 1667 } |
| 1659 ASSERT(prev == m_lastChild); | 1668 ASSERT(prev == m_lastChild); |
| 1660 #endif | 1669 #endif |
| 1661 } | 1670 } |
| 1662 | 1671 |
| 1663 #endif | 1672 #endif |
| 1664 | 1673 |
| 1665 } // namespace WebCore | 1674 } // namespace WebCore |
| OLD | NEW |