Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(752)

Unified Diff: Source/core/editing/VisibleUnits.cpp

Issue 602423002: Mixing content editable and non-editable in direction RTL (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Updated as per codereview comment Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/editing/VisiblePosition.cpp ('k') | Source/core/editing/htmlediting.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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;
}
« no previous file with comments | « Source/core/editing/VisiblePosition.cpp ('k') | Source/core/editing/htmlediting.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698