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 364 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
375 return logicalLeft; | 375 return logicalLeft; |
376 } | 376 } |
377 | 377 |
378 float InlineFlowBox::placeBoxRangeInInlineDirection(InlineBox* firstChild, Inlin
eBox* lastChild, | 378 float InlineFlowBox::placeBoxRangeInInlineDirection(InlineBox* firstChild, Inlin
eBox* lastChild, |
379 float& logicalLeft, float& minLogicalLeft, float& maxLogicalRight, bool& nee
dsWordSpacing) | 379 float& logicalLeft, float& minLogicalLeft, float& maxLogicalRight, bool& nee
dsWordSpacing) |
380 { | 380 { |
381 for (InlineBox* curr = firstChild; curr && curr != lastChild; curr = curr->n
extOnLine()) { | 381 for (InlineBox* curr = firstChild; curr && curr != lastChild; curr = curr->n
extOnLine()) { |
382 if (curr->renderer().isText()) { | 382 if (curr->renderer().isText()) { |
383 InlineTextBox* text = toInlineTextBox(curr); | 383 InlineTextBox* text = toInlineTextBox(curr); |
384 RenderText& rt = text->renderer(); | 384 RenderText& rt = text->renderer(); |
| 385 float space = 0; |
385 if (rt.textLength()) { | 386 if (rt.textLength()) { |
386 if (needsWordSpacing && isSpaceOrNewline(rt.characterAt(text->st
art()))) | 387 if (needsWordSpacing && isSpaceOrNewline(rt.characterAt(text->st
art()))) |
387 logicalLeft += rt.style(isFirstLineStyle())->font().fontDesc
ription().wordSpacing(); | 388 space = rt.style(isFirstLineStyle())->font().fontDescription
().wordSpacing(); |
388 needsWordSpacing = !isSpaceOrNewline(rt.characterAt(text->end())
); | 389 needsWordSpacing = !isSpaceOrNewline(rt.characterAt(text->end())
); |
389 } | 390 } |
390 text->setLogicalLeft(logicalLeft); | 391 if (isLeftToRightDirection()) { |
| 392 logicalLeft += space; |
| 393 text->setLogicalLeft(logicalLeft); |
| 394 } else { |
| 395 text->setLogicalLeft(logicalLeft); |
| 396 logicalLeft += space; |
| 397 } |
391 if (knownToHaveNoOverflow()) | 398 if (knownToHaveNoOverflow()) |
392 minLogicalLeft = std::min(logicalLeft, minLogicalLeft); | 399 minLogicalLeft = std::min(logicalLeft, minLogicalLeft); |
393 logicalLeft += text->logicalWidth(); | 400 logicalLeft += text->logicalWidth(); |
394 if (knownToHaveNoOverflow()) | 401 if (knownToHaveNoOverflow()) |
395 maxLogicalRight = std::max(logicalLeft, maxLogicalRight); | 402 maxLogicalRight = std::max(logicalLeft, maxLogicalRight); |
396 } else { | 403 } else { |
397 if (curr->renderer().isOutOfFlowPositioned()) { | 404 if (curr->renderer().isOutOfFlowPositioned()) { |
398 if (curr->renderer().parent()->style()->isLeftToRightDirection()
) { | 405 if (curr->renderer().parent()->style()->isLeftToRightDirection()
) { |
399 curr->setLogicalLeft(logicalLeft); | 406 curr->setLogicalLeft(logicalLeft); |
400 } else { | 407 } else { |
(...skipping 1264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1665 ASSERT(child->prevOnLine() == prev); | 1672 ASSERT(child->prevOnLine() == prev); |
1666 prev = child; | 1673 prev = child; |
1667 } | 1674 } |
1668 ASSERT(prev == m_lastChild); | 1675 ASSERT(prev == m_lastChild); |
1669 #endif | 1676 #endif |
1670 } | 1677 } |
1671 | 1678 |
1672 #endif | 1679 #endif |
1673 | 1680 |
1674 } // namespace blink | 1681 } // namespace blink |
OLD | NEW |