diff options
author | mhm@chromium.org <mhm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-22 22:19:34 +0000 |
---|---|---|
committer | mhm@chromium.org <mhm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-22 22:19:34 +0000 |
commit | 431c446fbd7fe899a5792d611f5abb1a1f68ea3c (patch) | |
tree | 3745e723743206a8e525346fbc70c6f0885a6dfa /chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc | |
parent | c6c066721f0678fc694f96169514c8aa14e9ffe1 (diff) | |
download | chromium_src-431c446fbd7fe899a5792d611f5abb1a1f68ea3c.zip chromium_src-431c446fbd7fe899a5792d611f5abb1a1f68ea3c.tar.gz chromium_src-431c446fbd7fe899a5792d611f5abb1a1f68ea3c.tar.bz2 |
Paste and Go was missing on the omnibar this CL will append a menu item to the current Autocomplete edit box and by using Gtk clipboard, it will paste and search it.
BUG=14800 (http://crbug.com/14800)
TEST=Selected text from view and right clicked copied. Went to the omnibox and right clicked > Paste and Go. It navigated to the page successfully.
Review URL: http://codereview.chromium.org/140050
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18967 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc')
-rw-r--r-- | chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc b/chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc index 17e9a11..06647df 100644 --- a/chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc +++ b/chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc @@ -508,19 +508,42 @@ void AutocompleteEditViewGtk::HandlePopulatePopup(GtkMenu* menu) { GtkWidget* separator = gtk_separator_menu_item_new(); gtk_menu_shell_append(GTK_MENU_SHELL(menu), separator); gtk_widget_show(separator); - GtkWidget* menuitem = gtk_menu_item_new_with_mnemonic( + + // Search Engine menu item. + GtkWidget* search_engine_menuitem = gtk_menu_item_new_with_mnemonic( gtk_util::ConvertAcceleratorsFromWindowsStyle( l10n_util::GetStringUTF8(IDS_EDIT_SEARCH_ENGINES)).c_str()); - gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); - g_signal_connect(menuitem, "activate", + gtk_menu_shell_append(GTK_MENU_SHELL(menu), search_engine_menuitem); + g_signal_connect(search_engine_menuitem, "activate", G_CALLBACK(HandleEditSearchEnginesThunk), this); - gtk_widget_show(menuitem); + gtk_widget_show(search_engine_menuitem); + + // Paste and Go menu item. + GtkWidget* paste_go_menuitem = gtk_menu_item_new_with_mnemonic( + gtk_util::ConvertAcceleratorsFromWindowsStyle( + l10n_util::GetStringUTF8(model_->is_paste_and_search() ? + IDS_PASTE_AND_SEARCH : IDS_PASTE_AND_GO)).c_str()); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), paste_go_menuitem); + g_signal_connect(paste_go_menuitem, "activate", + G_CALLBACK(HandlePasteAndGoThunk), this); + gtk_widget_show(paste_go_menuitem); } void AutocompleteEditViewGtk::HandleEditSearchEngines() { command_updater_->ExecuteCommand(IDC_EDIT_SEARCH_ENGINES); } +void AutocompleteEditViewGtk::HandlePasteAndGo() { + GtkClipboard* x_clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD); + gtk_clipboard_request_text(x_clipboard, HandlePasteAndGoReceivedTextThunk, + this); +} + +void AutocompleteEditViewGtk::HandlePasteAndGoReceivedText( + const std::wstring& text) { + if (model_->CanPasteAndGo(text)) + model_->PasteAndGo(); +} AutocompleteEditViewGtk::CharRange AutocompleteEditViewGtk::GetSelection() { // You can not just use get_selection_bounds here, since the order will be |