Chromium Code Reviews| Index: Source/core/editing/FrameSelection.cpp |
| diff --git a/Source/core/editing/FrameSelection.cpp b/Source/core/editing/FrameSelection.cpp |
| index 969308a48948c4f1c0b89325b2afe979700cab12..a77658f845e3f8b4c6b9ea87597e927609b81268 100644 |
| --- a/Source/core/editing/FrameSelection.cpp |
| +++ b/Source/core/editing/FrameSelection.cpp |
| @@ -72,6 +72,7 @@ |
| #include "platform/SecureTextInput.h" |
| #include "platform/geometry/FloatQuad.h" |
| #include "platform/graphics/GraphicsContext.h" |
| +#include "platform/text/UnicodeUtilities.h" |
| #include "wtf/text/CString.h" |
| #include <stdio.h> |
| @@ -1930,6 +1931,22 @@ void FrameSelection::scheduleVisualUpdate() const |
| page->animator().scheduleVisualUpdate(); |
| } |
| +bool FrameSelection::selectWordAroundPosition(const VisiblePosition& position) |
| +{ |
| + EWordSide wordSideList[2] = { RightWordIfOnBoundary, LeftWordIfOnBoundary }; |
|
Yuta Kitamura
2014/11/14 05:14:56
static const
yoichio
2014/11/14 06:19:58
Done.
|
| + for (EWordSide wordSide : wordSideList) { |
| + VisiblePosition start = startOfWord(position, wordSide); |
| + VisiblePosition end = endOfWord(position, wordSide); |
| + String text = plainText(start.deepEquivalent(), end.deepEquivalent()); |
| + if (!text.isEmpty() && !isSeparator(text.characterStartingAt(0))) { |
| + setSelection(VisibleSelection(start, end), WordGranularity); |
| + return true; |
| + } |
| + } |
| + |
| + return false; |
| +} |
| + |
| } |
| #ifndef NDEBUG |