diff options
Diffstat (limited to 'WebCore/editing/visible_units.cpp')
-rw-r--r-- | WebCore/editing/visible_units.cpp | 51 |
1 files changed, 6 insertions, 45 deletions
diff --git a/WebCore/editing/visible_units.cpp b/WebCore/editing/visible_units.cpp index 7d46374..d7343bf 100644 --- a/WebCore/editing/visible_units.cpp +++ b/WebCore/editing/visible_units.cpp @@ -45,30 +45,6 @@ namespace WebCore { using namespace HTMLNames; using namespace WTF::Unicode; -static int endOfFirstWordBoundaryContext(const UChar* characters, int length) -{ - for (int i = 0; i < length; ) { - int first = i; - UChar32 ch; - U16_NEXT(characters, i, length, ch); - if (!requiresContextForWordBoundary(ch)) - return first; - } - return length; -} - -static int startOfLastWordBoundaryContext(const UChar* characters, int length) -{ - for (int i = length; i > 0; ) { - int last = i; - UChar32 ch; - U16_PREV(characters, 0, i, ch); - if (!requiresContextForWordBoundary(ch)) - return last; - } - return 0; -} - enum BoundarySearchContextAvailability { DontHaveMoreContext, MayHaveMoreContext }; typedef unsigned (*BoundarySearchFunction)(const UChar*, unsigned length, unsigned offset, BoundarySearchContextAvailability, bool& needMoreContext); @@ -418,21 +394,6 @@ static VisiblePosition startPositionForLine(const VisiblePosition& c) VisiblePosition startOfLine(const VisiblePosition& c) { VisiblePosition visPos = startPositionForLine(c); - - if (visPos.isNotNull()) { - // Make sure the start of line is not greater than the given input position. Else use the previous position to - // obtain start of line. This condition happens when the input position is before the space character at the end - // of a soft-wrapped non-editable line. In this scenario, startPositionForLine would incorrectly hand back a position - // greater than the input position. This fix is to account for the discrepancy between lines with webkit-line-break:after-white-space - // style versus lines without that style, which would break before a space by default. - Position p = visPos.deepEquivalent(); - if (p.deprecatedEditingOffset() > c.deepEquivalent().deprecatedEditingOffset() && p.node()->isSameNode(c.deepEquivalent().node())) { - visPos = c.previous(); - if (visPos.isNull()) - return VisiblePosition(); - visPos = startPositionForLine(visPos); - } - } return c.honorEditableBoundaryAtOrAfter(visPos); } @@ -780,7 +741,7 @@ VisiblePosition nextSentencePosition(const VisiblePosition &c) return c.honorEditableBoundaryAtOrBefore(next); } -VisiblePosition startOfParagraph(const VisiblePosition& c, Position::EditingBoundaryCrossingRule boundaryCrossingRule) +VisiblePosition startOfParagraph(const VisiblePosition& c, EditingBoundaryCrossingRule boundaryCrossingRule) { Position p = c.deepEquivalent(); Node *startNode = p.node(); @@ -798,7 +759,7 @@ VisiblePosition startOfParagraph(const VisiblePosition& c, Position::EditingBoun Node *n = startNode; while (n) { - if (boundaryCrossingRule == Position::CannotCrossEditingBoundary && n->isContentEditable() != startNode->isContentEditable()) + if (boundaryCrossingRule == CannotCrossEditingBoundary && n->isContentEditable() != startNode->isContentEditable()) break; RenderObject *r = n->renderer(); if (!r) { @@ -839,7 +800,7 @@ VisiblePosition startOfParagraph(const VisiblePosition& c, Position::EditingBoun return VisiblePosition(node, offset, DOWNSTREAM); } -VisiblePosition endOfParagraph(const VisiblePosition &c, Position::EditingBoundaryCrossingRule boundaryCrossingRule) +VisiblePosition endOfParagraph(const VisiblePosition &c, EditingBoundaryCrossingRule boundaryCrossingRule) { if (c.isNull()) return VisiblePosition(); @@ -858,7 +819,7 @@ VisiblePosition endOfParagraph(const VisiblePosition &c, Position::EditingBounda Node *n = startNode; while (n) { - if (boundaryCrossingRule == Position::CannotCrossEditingBoundary && n->isContentEditable() != startNode->isContentEditable()) + if (boundaryCrossingRule == CannotCrossEditingBoundary && n->isContentEditable() != startNode->isContentEditable()) break; RenderObject *r = n->renderer(); if (!r) { @@ -914,12 +875,12 @@ bool inSameParagraph(const VisiblePosition &a, const VisiblePosition &b) return a.isNotNull() && startOfParagraph(a) == startOfParagraph(b); } -bool isStartOfParagraph(const VisiblePosition &pos, Position::EditingBoundaryCrossingRule boundaryCrossingRule) +bool isStartOfParagraph(const VisiblePosition &pos, EditingBoundaryCrossingRule boundaryCrossingRule) { return pos.isNotNull() && pos == startOfParagraph(pos, boundaryCrossingRule); } -bool isEndOfParagraph(const VisiblePosition &pos, Position::EditingBoundaryCrossingRule boundaryCrossingRule) +bool isEndOfParagraph(const VisiblePosition &pos, EditingBoundaryCrossingRule boundaryCrossingRule) { return pos.isNotNull() && pos == endOfParagraph(pos, boundaryCrossingRule); } |