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 578 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
589 continue; // Positioned objects are only participating to figure out
their | 589 continue; // Positioned objects are only participating to figure out
their |
590 // correct static x position. They have no effect on the
width. | 590 // correct static x position. They have no effect on the
width. |
591 // Similarly, line break boxes have no effect on the width
. | 591 // Similarly, line break boxes have no effect on the width
. |
592 if (r->m_object->isText()) { | 592 if (r->m_object->isText()) { |
593 RenderText* rt = toRenderText(r->m_object); | 593 RenderText* rt = toRenderText(r->m_object); |
594 if (textAlign == JUSTIFY && r != trailingSpaceRun && textJustify !=
TextJustifyNone) { | 594 if (textAlign == JUSTIFY && r != trailingSpaceRun && textJustify !=
TextJustifyNone) { |
595 if (!isAfterExpansion) | 595 if (!isAfterExpansion) |
596 toInlineTextBox(r->m_box)->setCanHaveLeadingExpansion(true); | 596 toInlineTextBox(r->m_box)->setCanHaveLeadingExpansion(true); |
597 unsigned opportunitiesInRun; | 597 unsigned opportunitiesInRun; |
598 if (rt->is8Bit()) | 598 if (rt->is8Bit()) |
599 opportunitiesInRun = Character::expansionOpportunityCount(rt
->characters8() + r->m_start, r->m_stop - r->m_start, r->m_box->direction(), isA
fterExpansion); | 599 opportunitiesInRun = Character::expansionOpportunityCount(rt
->characters8() + r->m_start, r->m_stop - r->m_start, r->m_box->direction(), isA
fterExpansion, static_cast<ETextJustify>(textJustify)); |
600 else | 600 else |
601 opportunitiesInRun = Character::expansionOpportunityCount(rt
->characters16() + r->m_start, r->m_stop - r->m_start, r->m_box->direction(), is
AfterExpansion); | 601 opportunitiesInRun = Character::expansionOpportunityCount(rt
->characters16() + r->m_start, r->m_stop - r->m_start, r->m_box->direction(), is
AfterExpansion, static_cast<ETextJustify>(textJustify)); |
602 expansionOpportunities.append(opportunitiesInRun); | 602 expansionOpportunities.append(opportunitiesInRun); |
603 expansionOpportunityCount += opportunitiesInRun; | 603 expansionOpportunityCount += opportunitiesInRun; |
604 } | 604 } |
605 | 605 |
606 if (rt->textLength()) { | 606 if (rt->textLength()) { |
607 if (!r->m_start && needsWordSpacing && isSpaceOrNewline(rt->char
acterAt(r->m_start))) | 607 if (!r->m_start && needsWordSpacing && isSpaceOrNewline(rt->char
acterAt(r->m_start))) |
608 totalLogicalWidth += rt->style(lineInfo.isFirstLine())->font
().fontDescription().wordSpacing(); | 608 totalLogicalWidth += rt->style(lineInfo.isFirstLine())->font
().fontDescription().wordSpacing(); |
609 needsWordSpacing = !isSpaceOrNewline(rt->characterAt(r->m_stop -
1)); | 609 needsWordSpacing = !isSpaceOrNewline(rt->characterAt(r->m_stop -
1)); |
610 } | 610 } |
611 | 611 |
(...skipping 1422 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2034 float logicalLeft = logicalLeftOffsetForLine(logicalHeight(), false).toFloat
(); | 2034 float logicalLeft = logicalLeftOffsetForLine(logicalHeight(), false).toFloat
(); |
2035 float availableLogicalWidth = logicalRightOffsetForLine(logicalHeight(), fal
se) - logicalLeft; | 2035 float availableLogicalWidth = logicalRightOffsetForLine(logicalHeight(), fal
se) - logicalLeft; |
2036 updateLogicalWidthForAlignment(textAlign, 0, 0, logicalLeft, totalLogicalWid
th, availableLogicalWidth, 0); | 2036 updateLogicalWidthForAlignment(textAlign, 0, 0, logicalLeft, totalLogicalWid
th, availableLogicalWidth, 0); |
2037 | 2037 |
2038 if (!style()->isLeftToRightDirection()) | 2038 if (!style()->isLeftToRightDirection()) |
2039 return logicalWidth() - logicalLeft; | 2039 return logicalWidth() - logicalLeft; |
2040 return logicalLeft; | 2040 return logicalLeft; |
2041 } | 2041 } |
2042 | 2042 |
2043 } | 2043 } |
OLD | NEW |