summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/editing/SelectionController.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/editing/SelectionController.cpp')
-rw-r--r--Source/WebCore/editing/SelectionController.cpp24
1 files changed, 22 insertions, 2 deletions
diff --git a/Source/WebCore/editing/SelectionController.cpp b/Source/WebCore/editing/SelectionController.cpp
index 698ba2c..c5a33d3 100644
--- a/Source/WebCore/editing/SelectionController.cpp
+++ b/Source/WebCore/editing/SelectionController.cpp
@@ -254,9 +254,9 @@ void SelectionController::respondToNodeModification(Node* node, bool baseRemoved
m_selection.setWithoutValidation(m_selection.start(), m_selection.end());
else
m_selection.setWithoutValidation(m_selection.end(), m_selection.start());
- } else if (m_selection.firstRange()) {
+ } else if (RefPtr<Range> range = m_selection.firstRange()) {
ExceptionCode ec = 0;
- Range::CompareResults compareResult = m_selection.firstRange()->compareNode(node, ec);
+ Range::CompareResults compareResult = range->compareNode(node, ec);
if (!ec && (compareResult == Range::NODE_BEFORE_AND_AFTER || compareResult == Range::NODE_INSIDE)) {
// If we did nothing here, when this node's renderer was destroyed, the rect that it
// occupied would be invalidated, but, selection gaps that change as a result of
@@ -450,6 +450,9 @@ VisiblePosition SelectionController::modifyExtendingRight(TextGranularity granul
case DocumentBoundary:
// FIXME: implement all of the above?
pos = modifyExtendingForward(granularity);
+ break;
+ case WebKitVisualWordGranularity:
+ break;
}
return pos;
}
@@ -489,6 +492,8 @@ VisiblePosition SelectionController::modifyExtendingForward(TextGranularity gran
else
pos = endOfDocument(pos);
break;
+ case WebKitVisualWordGranularity:
+ break;
}
return pos;
@@ -520,6 +525,9 @@ VisiblePosition SelectionController::modifyMovingRight(TextGranularity granulari
case LineBoundary:
pos = rightBoundaryOfLine(startForPlatform(), directionOfEnclosingBlock());
break;
+ case WebKitVisualWordGranularity:
+ pos = rightWordPosition(VisiblePosition(m_selection.extent(), m_selection.affinity()));
+ break;
}
return pos;
}
@@ -568,6 +576,8 @@ VisiblePosition SelectionController::modifyMovingForward(TextGranularity granula
else
pos = endOfDocument(pos);
break;
+ case WebKitVisualWordGranularity:
+ break;
}
return pos;
}
@@ -607,6 +617,9 @@ VisiblePosition SelectionController::modifyExtendingLeft(TextGranularity granula
case ParagraphBoundary:
case DocumentBoundary:
pos = modifyExtendingBackward(granularity);
+ break;
+ case WebKitVisualWordGranularity:
+ break;
}
return pos;
}
@@ -651,6 +664,8 @@ VisiblePosition SelectionController::modifyExtendingBackward(TextGranularity gra
else
pos = startOfDocument(pos);
break;
+ case WebKitVisualWordGranularity:
+ break;
}
return pos;
}
@@ -681,6 +696,9 @@ VisiblePosition SelectionController::modifyMovingLeft(TextGranularity granularit
case LineBoundary:
pos = leftBoundaryOfLine(startForPlatform(), directionOfEnclosingBlock());
break;
+ case WebKitVisualWordGranularity:
+ pos = leftWordPosition(VisiblePosition(m_selection.extent(), m_selection.affinity()));
+ break;
}
return pos;
}
@@ -723,6 +741,8 @@ VisiblePosition SelectionController::modifyMovingBackward(TextGranularity granul
else
pos = startOfDocument(pos);
break;
+ case WebKitVisualWordGranularity:
+ break;
}
return pos;
}