diff --git a/terminal/terminal-widget.c b/terminal/terminal-widget.c index 7087516..baebc05 100644 --- a/terminal/terminal-widget.c +++ b/terminal/terminal-widget.c @@ -232,19 +232,31 @@ terminal_widget_context_menu_copy (TerminalWidget *widget, const gchar *wlink; GdkDisplay *display; + /* Store the desired URI */ + gchar *modified_wlink; + wlink = g_object_get_data (G_OBJECT (item), "terminal-widget-link"); if (G_LIKELY (wlink != NULL)) { display = gtk_widget_get_display (GTK_WIDGET (widget)); + modified_wlink = wlink; + + /* create a new URI without mailto: */ + if (strncmp(wlink, "mailto:", 7) == 0) + modified_wlink = strndup(wlink + 7, strlen(wlink) - 7); + /* copy the URI to "CLIPBOARD" */ clipboard = gtk_clipboard_get_for_display (display, GDK_SELECTION_CLIPBOARD); - gtk_clipboard_set_text (clipboard, wlink, -1); + gtk_clipboard_set_text (clipboard, modified_wlink, -1); /* copy the URI to "PRIMARY" */ clipboard = gtk_clipboard_get_for_display (display, GDK_SELECTION_PRIMARY); - gtk_clipboard_set_text (clipboard, wlink, -1); + gtk_clipboard_set_text (clipboard, modified_wlink, -1); } + + free(modified_wlink); + modified_wlink = NULL; }