| OLD | NEW |
| 1 /* | 1 /* |
| 2 * (C) 1999 Lars Knoll (knoll@kde.org) | 2 * (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 2000 Dirk Mueller (mueller@kde.org) | 3 * (C) 2000 Dirk Mueller (mueller@kde.org) |
| 4 * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. | 4 * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. |
| 5 * Copyright (C) 2006 Andrew Wellington (proton@wiretapped.net) | 5 * Copyright (C) 2006 Andrew Wellington (proton@wiretapped.net) |
| 6 * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com) | 6 * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com) |
| 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 709 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 720 { | 720 { |
| 721 if (style()->hasTextCombine() && isCombineText()) { | 721 if (style()->hasTextCombine() && isCombineText()) { |
| 722 const LayoutTextCombine* combineText = toLayoutTextCombine(this); | 722 const LayoutTextCombine* combineText = toLayoutTextCombine(this); |
| 723 if (combineText->isCombined()) | 723 if (combineText->isCombined()) |
| 724 return combineText->combinedTextWidth(f); | 724 return combineText->combinedTextWidth(f); |
| 725 } | 725 } |
| 726 | 726 |
| 727 TextRun run = constructTextRun(f, this, start, len, styleRef(), textDirectio
n); | 727 TextRun run = constructTextRun(f, this, start, len, styleRef(), textDirectio
n); |
| 728 run.setCharactersLength(textLength() - start); | 728 run.setCharactersLength(textLength() - start); |
| 729 ASSERT(run.charactersLength() >= run.length()); | 729 ASSERT(run.charactersLength() >= run.length()); |
| 730 run.setTabSize(!style()->collapseWhiteSpace(), style()->tabSize()); | 730 run.setTabSize(!style()->collapseWhiteSpace(), style()->getTabSize()); |
| 731 run.setXPos(leadWidth + textWidthSoFar); | 731 run.setXPos(leadWidth + textWidthSoFar); |
| 732 | 732 |
| 733 FloatRect newGlyphBounds; | 733 FloatRect newGlyphBounds; |
| 734 float result = f.width(run, fallbackFonts, glyphBoundsAccumulation ? &newGly
phBounds : nullptr); | 734 float result = f.width(run, fallbackFonts, glyphBoundsAccumulation ? &newGly
phBounds : nullptr); |
| 735 if (glyphBoundsAccumulation) { | 735 if (glyphBoundsAccumulation) { |
| 736 newGlyphBounds.move(textWidthSoFar, 0); | 736 newGlyphBounds.move(textWidthSoFar, 0); |
| 737 glyphBoundsAccumulation->unite(newGlyphBounds); | 737 glyphBoundsAccumulation->unite(newGlyphBounds); |
| 738 } | 738 } |
| 739 return result; | 739 return result; |
| 740 } | 740 } |
| (...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1074 m_firstLineMinWidth = currMaxWidth; | 1074 m_firstLineMinWidth = currMaxWidth; |
| 1075 } | 1075 } |
| 1076 | 1076 |
| 1077 if (currMaxWidth > m_maxWidth) | 1077 if (currMaxWidth > m_maxWidth) |
| 1078 m_maxWidth = currMaxWidth; | 1078 m_maxWidth = currMaxWidth; |
| 1079 currMaxWidth = 0; | 1079 currMaxWidth = 0; |
| 1080 } else { | 1080 } else { |
| 1081 TextRun run = constructTextRun(f, this, i, 1, styleToUse, textDi
rection); | 1081 TextRun run = constructTextRun(f, this, i, 1, styleToUse, textDi
rection); |
| 1082 run.setCharactersLength(len - i); | 1082 run.setCharactersLength(len - i); |
| 1083 ASSERT(run.charactersLength() >= run.length()); | 1083 ASSERT(run.charactersLength() >= run.length()); |
| 1084 run.setTabSize(!style()->collapseWhiteSpace(), style()->tabSize(
)); | 1084 run.setTabSize(!style()->collapseWhiteSpace(), style()->getTabSi
ze()); |
| 1085 run.setXPos(leadWidth + currMaxWidth); | 1085 run.setXPos(leadWidth + currMaxWidth); |
| 1086 | 1086 |
| 1087 currMaxWidth += f.width(run); | 1087 currMaxWidth += f.width(run); |
| 1088 needsWordSpacing = isSpace && !previousCharacterIsSpace && i ==
len - 1; | 1088 needsWordSpacing = isSpace && !previousCharacterIsSpace && i ==
len - 1; |
| 1089 } | 1089 } |
| 1090 ASSERT(lastWordBoundary == i); | 1090 ASSERT(lastWordBoundary == i); |
| 1091 lastWordBoundary++; | 1091 lastWordBoundary++; |
| 1092 } | 1092 } |
| 1093 } | 1093 } |
| 1094 if (run) | 1094 if (run) |
| (...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1506 w = maxLogicalWidth(); | 1506 w = maxLogicalWidth(); |
| 1507 } | 1507 } |
| 1508 } else { | 1508 } else { |
| 1509 w = widthFromFont(f, from, len, xPos.toFloat(), 0, textDirection, fa
llbackFonts, glyphBounds); | 1509 w = widthFromFont(f, from, len, xPos.toFloat(), 0, textDirection, fa
llbackFonts, glyphBounds); |
| 1510 } | 1510 } |
| 1511 } else { | 1511 } else { |
| 1512 TextRun run = constructTextRun(f, this, from, len, styleRef(), textDirec
tion); | 1512 TextRun run = constructTextRun(f, this, from, len, styleRef(), textDirec
tion); |
| 1513 run.setCharactersLength(textLength() - from); | 1513 run.setCharactersLength(textLength() - from); |
| 1514 ASSERT(run.charactersLength() >= run.length()); | 1514 ASSERT(run.charactersLength() >= run.length()); |
| 1515 | 1515 |
| 1516 run.setTabSize(!style()->collapseWhiteSpace(), style()->tabSize()); | 1516 run.setTabSize(!style()->collapseWhiteSpace(), style()->getTabSize()); |
| 1517 run.setXPos(xPos.toFloat()); | 1517 run.setXPos(xPos.toFloat()); |
| 1518 w = f.width(run, fallbackFonts, glyphBounds); | 1518 w = f.width(run, fallbackFonts, glyphBounds); |
| 1519 } | 1519 } |
| 1520 | 1520 |
| 1521 return w; | 1521 return w; |
| 1522 } | 1522 } |
| 1523 | 1523 |
| 1524 IntRect LayoutText::linesBoundingBox() const | 1524 IntRect LayoutText::linesBoundingBox() const |
| 1525 { | 1525 { |
| 1526 IntRect result; | 1526 IntRect result; |
| (...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1751 for (InlineTextBox* box = firstTextBox(); box; box = box->nextTextBox()) { | 1751 for (InlineTextBox* box = firstTextBox(); box; box = box->nextTextBox()) { |
| 1752 paintInvalidationContainer.invalidateDisplayItemClientOnBacking(*box, in
validationReason); | 1752 paintInvalidationContainer.invalidateDisplayItemClientOnBacking(*box, in
validationReason); |
| 1753 if (box->truncation() != cNoTruncation) { | 1753 if (box->truncation() != cNoTruncation) { |
| 1754 if (EllipsisBox* ellipsisBox = box->root().ellipsisBox()) | 1754 if (EllipsisBox* ellipsisBox = box->root().ellipsisBox()) |
| 1755 paintInvalidationContainer.invalidateDisplayItemClientOnBacking(
*ellipsisBox, invalidationReason); | 1755 paintInvalidationContainer.invalidateDisplayItemClientOnBacking(
*ellipsisBox, invalidationReason); |
| 1756 } | 1756 } |
| 1757 } | 1757 } |
| 1758 } | 1758 } |
| 1759 | 1759 |
| 1760 } // namespace blink | 1760 } // namespace blink |
| OLD | NEW |