diff options
author | Shaun McCance <shaunm@gnome.org> | 2010-05-21 16:22:42 -0500 |
---|---|---|
committer | Shaun McCance <shaunm@gnome.org> | 2010-05-21 16:22:42 -0500 |
commit | 55da84092d431ba44f17cba8a96aaac54ce02273 (patch) | |
tree | 9ab7564a03933b56867b96da585ef017210bba9e | |
parent | c705db1f687033c686e6269ae4876a780bfee423 (diff) | |
download | yelp-55da84092d431ba44f17cba8a96aaac54ce02273.tar.gz |
[libyelp/yelp-view] Special right-click menu for mailto: links
-rw-r--r-- | libyelp/yelp-view.c | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/libyelp/yelp-view.c b/libyelp/yelp-view.c index b237c6ce..783f7057 100644 --- a/libyelp/yelp-view.c +++ b/libyelp/yelp-view.c @@ -812,15 +812,31 @@ view_populate_popup (YelpView *view, g_free (priv->popup_link_uri); priv->popup_link_uri = uri; - item = gtk_menu_item_new_with_mnemonic (_("_Open Link")); - g_signal_connect (item, "activate", - G_CALLBACK (popup_open_link), view); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + if (g_str_has_prefix (priv->popup_link_uri, "mailto:")) { + /* Not using a mnemonic because underscores are common in email + * addresses, and we'd have to escape them. There doesn't seem + * to be a quick GTK+ function for this. In practice, there will + * probably only be one menu item for mailto link popups anyway, + * so the mnemonic's not that big of a deal. + */ + gchar *label = g_strdup_printf (_("Send email to %s"), + priv->popup_link_uri + 7); + item = gtk_menu_item_new_with_label (label); + g_signal_connect (item, "activate", + G_CALLBACK (popup_open_link), view); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + } + else { + item = gtk_menu_item_new_with_mnemonic (_("_Open Link")); + g_signal_connect (item, "activate", + G_CALLBACK (popup_open_link), view); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); - item = gtk_menu_item_new_with_mnemonic (_("Open Link in New _Window")); - g_signal_connect (item, "activate", - G_CALLBACK (popup_open_link_new), view); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + item = gtk_menu_item_new_with_mnemonic (_("Open Link in New _Window")); + g_signal_connect (item, "activate", + G_CALLBACK (popup_open_link_new), view); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + } } else { item = gtk_action_create_menu_item (gtk_action_group_get_action (priv->action_group, |