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