Index: third_party/WebKit/Source/web/WebViewImpl.cpp |
diff --git a/third_party/WebKit/Source/web/WebViewImpl.cpp b/third_party/WebKit/Source/web/WebViewImpl.cpp |
index 7c61e20f38e560ef3a9b1c10dd0067fde3d705e1..9e894ccafb154834c8772fa4686a7e6dcf785ded 100644 |
--- a/third_party/WebKit/Source/web/WebViewImpl.cpp |
+++ b/third_party/WebKit/Source/web/WebViewImpl.cpp |
@@ -2370,25 +2370,28 @@ bool WebViewImpl::confirmComposition() |
bool WebViewImpl::confirmComposition(ConfirmCompositionBehavior selectionBehavior) |
{ |
- return confirmComposition(WebString(), selectionBehavior); |
+ return confirmComposition(WebString(), selectionBehavior, 1); |
} |
-bool WebViewImpl::confirmComposition(const WebString& text) |
+bool WebViewImpl::confirmComposition(const WebString& text, int relativeCursorPosition) |
{ |
UserGestureIndicator gestureIndicator(DefinitelyProcessingNewUserGesture); |
- return confirmComposition(text, DoNotKeepSelection); |
+ return confirmComposition(text, DoNotKeepSelection, relativeCursorPosition); |
} |
-bool WebViewImpl::confirmComposition(const WebString& text, ConfirmCompositionBehavior selectionBehavior) |
+bool WebViewImpl::confirmComposition(const WebString& text, ConfirmCompositionBehavior selectionBehavior, int relativeCursorPosition) |
{ |
LocalFrame* focused = focusedLocalFrameAvailableForIme(); |
if (!focused) |
return false; |
if (WebPlugin* plugin = focusedPluginIfInputMethodSupported(focused)) |
- return plugin->confirmComposition(text, selectionBehavior); |
+ return plugin->confirmComposition(text, selectionBehavior, relativeCursorPosition); |
- return focused->inputMethodController().confirmCompositionOrInsertText(text, selectionBehavior == KeepSelection ? InputMethodController::KeepSelection : InputMethodController::DoNotKeepSelection); |
+ if (selectionBehavior == KeepSelection) |
+ return focused->inputMethodController().commitComposition(text); |
+ |
+ return focused->inputMethodController().commitCompositionWithCursor(text, relativeCursorPosition); |
} |
bool WebViewImpl::compositionRange(size_t* location, size_t* length) |