Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4873)

Unified Diff: chrome/renderer/render_view.cc

Issue 160565: Adds support for the os x spelling panel to chromium. Users can... (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: '' Created 11 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/renderer/render_view.h ('k') | webkit/glue/editor_client_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/renderer/render_view.cc
===================================================================
--- chrome/renderer/render_view.cc (revision 25643)
+++ chrome/renderer/render_view.cc (working copy)
@@ -212,7 +212,9 @@
determine_page_text_after_loading_stops_(false),
view_type_(ViewType::INVALID),
browser_window_id_(-1),
- last_top_level_navigation_page_id_(-1),
+ last_top_level_navigation_page_id_(-1),
+ has_spell_checker_document_tag_(false),
+ document_tag_(0),
webkit_preferences_(webkit_preferences) {
Singleton<RenderViewSet>()->render_view_set_.insert(this);
}
@@ -222,6 +224,9 @@
if (decrement_shared_popup_at_destruction_)
shared_popup_counter_->data--;
+ // Tell the spellchecker that the document is closed.
+ Send(new ViewHostMsg_DocumentWithTagClosed(routing_id_, document_tag_));
+
render_thread_->RemoveFilter(audio_message_filter_);
}
@@ -346,6 +351,9 @@
IPC_MESSAGE_HANDLER(ViewMsg_Copy, OnCopy)
IPC_MESSAGE_HANDLER(ViewMsg_Paste, OnPaste)
IPC_MESSAGE_HANDLER(ViewMsg_Replace, OnReplace)
+ IPC_MESSAGE_HANDLER(ViewMsg_ToggleSpellPanel, OnToggleSpellPanel)
+ IPC_MESSAGE_HANDLER(ViewMsg_AdvanceToNextMisspelling,
+ OnAdvanceToNextMisspelling)
IPC_MESSAGE_HANDLER(ViewMsg_ToggleSpellCheck, OnToggleSpellCheck)
IPC_MESSAGE_HANDLER(ViewMsg_Delete, OnDelete)
IPC_MESSAGE_HANDLER(ViewMsg_SelectAll, OnSelectAll)
@@ -829,6 +837,23 @@
webview()->GetFocusedFrame()->replaceSelection(WideToUTF16Hack(text));
}
+void RenderView::OnAdvanceToNextMisspelling() {
+ if (!webview())
+ return;
+ webview()->GetFocusedFrame()->executeCommand(
+ WebString::fromUTF8("AdvanceToNextMisspelling"));
+}
+
+void RenderView::OnToggleSpellPanel(bool is_currently_visible) {
+ if (!webview())
+ return;
+ // We need to tell the webView whether the spelling panel is visible or not so
+ // that it won't need to make ipc calls later.
+ webview()->SetSpellingPanelVisibility(is_currently_visible);
+ webview()->GetFocusedFrame()->executeCommand(
+ WebString::fromUTF8("ToggleSpellPanel"));
+}
+
void RenderView::OnToggleSpellCheck() {
if (!webview())
return;
@@ -2523,24 +2548,45 @@
return opened_by_user_gesture_;
}
-void RenderView::SpellCheck(const std::wstring& word, int* misspell_location,
- int* misspell_length) {
- Send(new ViewHostMsg_SpellCheck(routing_id_, word, misspell_location,
- misspell_length));
+void RenderView::SpellCheck(const std::wstring& word, int tag,
+ int* misspell_location,
+ int* misspell_length) {
+ Send(new ViewHostMsg_SpellCheck(routing_id_, word, tag,
+ misspell_location, misspell_length));
}
std::wstring RenderView::GetAutoCorrectWord(
- const std::wstring& misspelled_word) {
+ const std::wstring& misspelled_word, int tag) {
std::wstring autocorrect_word;
const CommandLine& command_line = *CommandLine::ForCurrentProcess();
if (command_line.HasSwitch(switches::kAutoSpellCorrect)) {
- Send(new ViewHostMsg_GetAutoCorrectWord(routing_id_, misspelled_word,
+ Send(new ViewHostMsg_GetAutoCorrectWord(routing_id_, misspelled_word, tag,
&autocorrect_word));
}
return autocorrect_word;
}
+void RenderView::ShowSpellingUI(bool show) {
+ Send(new ViewHostMsg_ShowSpellingPanel(routing_id_, show));
+}
+
+int RenderView::SpellCheckerDocumentTag() {
+ if (!has_spell_checker_document_tag_) {
+ // Make the call to get the tag.
+ int tag;
+ Send(new ViewHostMsg_GetDocumentTag(routing_id_, &tag));
+ document_tag_ = tag;
+ has_spell_checker_document_tag_ = true;
+ }
+ return document_tag_;
+}
+
+void RenderView::UpdateSpellingUIWithMisspelledWord(const std::wstring& word) {
+ Send(new ViewHostMsg_UpdateSpellingPanelWithMisspelledWord(
+ routing_id_, word));
+}
+
void RenderView::ScriptedPrint(WebFrame* frame) {
DCHECK(webview());
if (webview()) {
« no previous file with comments | « chrome/renderer/render_view.h ('k') | webkit/glue/editor_client_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698