diff --git a/src/terminal-util.c b/src/terminal-util.c index e36cba9..8e1c64f 100644 --- a/src/terminal-util.c +++ b/src/terminal-util.c @@ -125,7 +125,7 @@ terminal_util_show_error_dialog (GtkWindow *transient_parent, g_free (message); } -static gboolean +gboolean open_url (GtkWindow *parent, const char *uri, guint32 user_time, diff --git a/src/terminal-util.h b/src/terminal-util.h index a8648af..44a15a5 100644 --- a/src/terminal-util.h +++ b/src/terminal-util.h @@ -46,6 +46,11 @@ void terminal_util_set_atk_name_description (GtkWidget *widget, const char *name, const char *desc); +gboolean open_url (GtkWindow *parent, + const char *uri, + guint32 user_time, + GError **error); + void terminal_util_open_url (GtkWidget *parent, const char *orig_url, TerminalURLFlavour flavor, diff --git a/src/terminal-window.c b/src/terminal-window.c index 65e7189..165d616 100644 --- a/src/terminal-window.c +++ b/src/terminal-window.c @@ -1233,6 +1233,20 @@ popup_copy_url_callback (GtkAction *action, } static void +search_on_google_callback (GtkAction *action, + TerminalWindow *window) +{ + gchar *url; + GtkClipboard *clipboard; + + clipboard = gtk_widget_get_clipboard (GTK_WIDGET (window), GDK_SELECTION_PRIMARY); + url = g_strdup_printf ("http://www.google.com/search?ie=UTF-8&q=%s", gtk_clipboard_wait_for_text(clipboard)); + open_url (GTK_WINDOW (window), url, gtk_get_current_event_time (), NULL); + + g_free(url); +} + +static void popup_leave_fullscreen_callback (GtkAction *action, TerminalWindow *window) { @@ -1345,6 +1359,8 @@ popup_clipboard_targets_received_cb (GtkClipboard *clipboard, gtk_action_set_visible (action, show_link); action = gtk_action_group_get_action (priv->action_group, "PopupCopyLinkAddress"); gtk_action_set_visible (action, show_link); + action = gtk_action_group_get_action (priv->action_group, "PopupSearchOnGoogle"); + gtk_action_set_visible (action, vte_terminal_get_has_selection (VTE_TERMINAL (screen))); action = gtk_action_group_get_action (priv->action_group, "PopupCloseWindow"); gtk_action_set_visible (action, n_pages <= 1); @@ -1944,6 +1960,9 @@ terminal_window_init (TerminalWindow *window) { "PopupCopyLinkAddress", NULL, N_("_Copy Link Address"), NULL, NULL, G_CALLBACK (popup_copy_url_callback) }, + { "PopupSearchOnGoogle", NULL, N_("_Search On Google"), NULL, + NULL, + G_CALLBACK (search_on_google_callback) }, { "PopupTerminalProfiles", NULL, N_("P_rofiles") }, { "PopupCopy", GTK_STOCK_COPY, NULL, "", NULL, diff --git a/src/terminal.xml b/src/terminal.xml index 91329d3..21a08ac 100644 --- a/src/terminal.xml +++ b/src/terminal.xml @@ -85,6 +85,7 @@ +