summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/renderer_host/render_widget_host.h3
-rw-r--r--chrome/renderer/render_view.cc5
2 files changed, 6 insertions, 2 deletions
diff --git a/chrome/browser/renderer_host/render_widget_host.h b/chrome/browser/renderer_host/render_widget_host.h
index ea6c843..146be7f 100644
--- a/chrome/browser/renderer_host/render_widget_host.h
+++ b/chrome/browser/renderer_host/render_widget_host.h
@@ -339,7 +339,8 @@ class RenderWidgetHost : public IPC::Channel::Listener,
// Makes an IPC call to toggle the spelling panel.
void ToggleSpellPanel(bool is_currently_visible);
- // Makes an IPC call to tell webkit to replace the currently selected word.
+ // Makes an IPC call to tell webkit to replace the currently selected word
+ // or a word around the cursor.
void Replace(const string16& word);
// Makes an IPC call to tell webkit to advance to the next misspelling.
diff --git a/chrome/renderer/render_view.cc b/chrome/renderer/render_view.cc
index 96b38c9..54cb6c2 100644
--- a/chrome/renderer/render_view.cc
+++ b/chrome/renderer/render_view.cc
@@ -1043,7 +1043,10 @@ void RenderView::OnReplace(const string16& text) {
if (!webview())
return;
- webview()->focusedFrame()->replaceSelection(text);
+ WebFrame* frame = webview()->focusedFrame();
+ if (!frame->hasSelection())
+ frame->selectWordAroundCaret();
+ frame->replaceSelection(text);
}
void RenderView::OnAdvanceToNextMisspelling() {