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

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

Issue 1313963003: Move honorEditingBoundaryAtOr{Before,After}() out from VisiblePosition class (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: 2015-08-31T14:15:42 Created 5 years, 4 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.h ('k') | Source/core/editing/VisibleUnits.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/editing/VisiblePosition.cpp
diff --git a/Source/core/editing/VisiblePosition.cpp b/Source/core/editing/VisiblePosition.cpp
index 4e9143e54e075f79c754781d676ee90002c60d5a..c7ccc8110464c32f204961cd147a046a6efe43e9 100644
--- a/Source/core/editing/VisiblePosition.cpp
+++ b/Source/core/editing/VisiblePosition.cpp
@@ -77,12 +77,12 @@ VisiblePosition nextPositionOf(const VisiblePosition& visiblePosition, EditingBo
case CanCrossEditingBoundary:
return next;
case CannotCrossEditingBoundary:
- return visiblePosition.honorEditingBoundaryAtOrAfter(next);
+ return honorEditingBoundaryAtOrAfter(next, visiblePosition.deepEquivalent());
case CanSkipOverEditingBoundary:
return skipToEndOfEditingBoundary(next, visiblePosition.deepEquivalent());
}
ASSERT_NOT_REACHED();
- return visiblePosition.honorEditingBoundaryAtOrAfter(next);
+ return honorEditingBoundaryAtOrAfter(next, visiblePosition.deepEquivalent());
}
// TODO(yosin) We should move implementation of |skipToStartOfEditingBoundary()|
@@ -114,13 +114,13 @@ VisiblePosition previousPositionOf(const VisiblePosition& visiblePosition, Editi
case CanCrossEditingBoundary:
return prev;
case CannotCrossEditingBoundary:
- return visiblePosition.honorEditingBoundaryAtOrBefore(prev);
+ return honorEditingBoundaryAtOrBefore(prev, visiblePosition.deepEquivalent());
case CanSkipOverEditingBoundary:
return skipToStartOfEditingBoundary(prev, visiblePosition.deepEquivalent());
}
ASSERT_NOT_REACHED();
- return visiblePosition.honorEditingBoundaryAtOrBefore(prev);
+ return honorEditingBoundaryAtOrBefore(prev, visiblePosition.deepEquivalent());
}
// TODO(yosin) We should move |rightVisuallyDistinctCandidate()| with
@@ -284,7 +284,7 @@ VisiblePosition leftPositionOf(const VisiblePosition& visiblePosition)
VisiblePosition left = VisiblePosition(pos);
ASSERT(left.deepEquivalent() != visiblePosition.deepEquivalent());
- return directionOfEnclosingBlock(left.deepEquivalent()) == LTR ? visiblePosition.honorEditingBoundaryAtOrBefore(left) : visiblePosition.honorEditingBoundaryAtOrAfter(left);
+ return directionOfEnclosingBlock(left.deepEquivalent()) == LTR ? honorEditingBoundaryAtOrBefore(left, visiblePosition.deepEquivalent()) : honorEditingBoundaryAtOrAfter(left, visiblePosition.deepEquivalent());
}
// TODO(yosin) We should move |rightVisuallyDistinctCandidate()| with
@@ -451,7 +451,7 @@ VisiblePosition rightPositionOf(const VisiblePosition& visiblePosition)
VisiblePosition right = VisiblePosition(pos);
ASSERT(right.deepEquivalent() != visiblePosition.deepEquivalent());
- return directionOfEnclosingBlock(right.deepEquivalent()) == LTR ? visiblePosition.honorEditingBoundaryAtOrAfter(right) : visiblePosition.honorEditingBoundaryAtOrBefore(right);
+ return directionOfEnclosingBlock(right.deepEquivalent()) == LTR ? honorEditingBoundaryAtOrAfter(right, visiblePosition.deepEquivalent()) : honorEditingBoundaryAtOrBefore(right, visiblePosition.deepEquivalent());
}
template <typename Strategy>
@@ -491,17 +491,17 @@ PositionInComposedTreeWithAffinity honorEditingBoundaryAtOrBeforeOf(const Positi
return honorEditingBoundaryAtOrBeforeAlgorithm(pos, anchor);
}
-VisiblePosition VisiblePosition::honorEditingBoundaryAtOrBefore(const VisiblePosition &pos) const
+VisiblePosition honorEditingBoundaryAtOrBefore(const VisiblePosition& pos, const Position& anchor)
{
- return VisiblePosition(honorEditingBoundaryAtOrBeforeOf(pos.toPositionWithAffinity(), deepEquivalent()));
+ return VisiblePosition(honorEditingBoundaryAtOrBeforeOf(pos.toPositionWithAffinity(), anchor));
}
-VisiblePosition VisiblePosition::honorEditingBoundaryAtOrAfter(const VisiblePosition &pos) const
+VisiblePosition honorEditingBoundaryAtOrAfter(const VisiblePosition& pos, const Position& anchor)
{
if (pos.isNull())
return pos;
- ContainerNode* highestRoot = highestEditableRoot(deepEquivalent());
+ ContainerNode* highestRoot = highestEditableRoot(anchor);
// Return empty position if pos is not somewhere inside the editable region containing this position
if (highestRoot && !pos.deepEquivalent().anchorNode()->isDescendantOf(highestRoot))
« no previous file with comments | « Source/core/editing/VisiblePosition.h ('k') | Source/core/editing/VisibleUnits.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698