Chromium Code Reviews| Index: Source/core/editing/VisibleUnits.cpp |
| diff --git a/Source/core/editing/VisibleUnits.cpp b/Source/core/editing/VisibleUnits.cpp |
| index 73387b78649bf6738235c489eacfe16437efa813..793ead865c30842253837541365913fdd152d6e5 100644 |
| --- a/Source/core/editing/VisibleUnits.cpp |
| +++ b/Source/core/editing/VisibleUnits.cpp |
| @@ -351,7 +351,7 @@ static VisiblePosition visualWordPosition(const VisiblePosition& visiblePosition |
| if (visiblePosition.isNull()) |
| return VisiblePosition(); |
| - TextDirection blockDirection = directionOfEnclosingBlock(visiblePosition.deepEquivalent()); |
| + bool blockDirection = isEnclosingBoxHasLeftToRightDirection(visiblePosition.deepEquivalent()); |
|
yosin_UTC9
2014/10/08 08:32:51
nit: Please rename |blockDirection| to |isLeftToRi
Habib Virji
2014/10/08 08:40:27
Done.
|
| InlineBox* previouslyVisitedBox = 0; |
| VisiblePosition current = visiblePosition; |
| TextBreakIterator* iter = 0; |
| @@ -397,7 +397,7 @@ static VisiblePosition visualWordPosition(const VisiblePosition& visiblePosition |
| int offsetInIterator = offsetInBox - textBox->start() + previousBoxLength; |
| bool isWordBreak; |
| - bool boxHasSameDirectionalityAsBlock = box->direction() == blockDirection; |
| + bool boxHasSameDirectionalityAsBlock = blockDirection ? box->direction() == LTR : box->direction() == RTL; |
| bool movingBackward = (direction == MoveLeft && box->direction() == LTR) || (direction == MoveRight && box->direction() == RTL); |
| if ((skipsSpaceWhenMovingRight && boxHasSameDirectionalityAsBlock) |
| || (!skipsSpaceWhenMovingRight && movingBackward)) { |
| @@ -422,10 +422,9 @@ VisiblePosition leftWordPosition(const VisiblePosition& visiblePosition, bool sk |
| leftWordBreak = visiblePosition.honorEditingBoundaryAtOrBefore(leftWordBreak); |
| // FIXME: How should we handle a non-editable position? |
| - if (leftWordBreak.isNull() && isEditablePosition(visiblePosition.deepEquivalent())) { |
| - TextDirection blockDirection = directionOfEnclosingBlock(visiblePosition.deepEquivalent()); |
| - leftWordBreak = blockDirection == LTR ? startOfEditableContent(visiblePosition) : endOfEditableContent(visiblePosition); |
| - } |
| + if (leftWordBreak.isNull() && isEditablePosition(visiblePosition.deepEquivalent())) |
| + leftWordBreak = isEnclosingBoxHasLeftToRightDirection(visiblePosition.deepEquivalent()) ? startOfEditableContent(visiblePosition) : endOfEditableContent(visiblePosition); |
| + |
| return leftWordBreak; |
| } |
| @@ -435,10 +434,9 @@ VisiblePosition rightWordPosition(const VisiblePosition& visiblePosition, bool s |
| rightWordBreak = visiblePosition.honorEditingBoundaryAtOrBefore(rightWordBreak); |
| // FIXME: How should we handle a non-editable position? |
| - if (rightWordBreak.isNull() && isEditablePosition(visiblePosition.deepEquivalent())) { |
| - TextDirection blockDirection = directionOfEnclosingBlock(visiblePosition.deepEquivalent()); |
| - rightWordBreak = blockDirection == LTR ? endOfEditableContent(visiblePosition) : startOfEditableContent(visiblePosition); |
| - } |
| + if (rightWordBreak.isNull() && isEditablePosition(visiblePosition.deepEquivalent())) |
| + rightWordBreak = isEnclosingBoxHasLeftToRightDirection(visiblePosition.deepEquivalent()) ? endOfEditableContent(visiblePosition) : startOfEditableContent(visiblePosition); |
| + |
| return rightWordBreak; |
| } |