strlen(path) - 7); // Offset by 7 to remove "file://"
}
+void
+download_xdg_open(GtkMenuItem *tb, gpointer data) {
+ struct DownloadItem *payload = data;
+ const gchar *path = webkit_download_get_destination(payload->download);
+ char *cmd = malloc(strlen(path) + 9);
+ sprintf(cmd, "xdg-open %s", path);
+ system(cmd);
+}
+
void
download_click(GtkToolButton *tb, gpointer data) {
GtkWidget *pmenu = gtk_menu_new();
option = gtk_menu_item_new_with_label("Cancel download");
g_signal_connect(G_OBJECT(option), "activate",
G_CALLBACK(download_cancel), data);
+ gtk_widget_show(option);
+ gtk_menu_shell_append(GTK_MENU_SHELL(pmenu), option);
} else {
option = gtk_menu_item_new_with_label("Remove download");
g_signal_connect(G_OBJECT(option), "activate",
G_CALLBACK(download_remove), data);
+ gtk_widget_show(option);
+ gtk_menu_shell_append(GTK_MENU_SHELL(pmenu), option);
+
+ option = gtk_menu_item_new_with_label("Open file with xdg-open");
+ gtk_widget_show(option);
+ gtk_menu_shell_append(GTK_MENU_SHELL(pmenu), option);
+ g_signal_connect(G_OBJECT(option), "activate",
+ G_CALLBACK(download_xdg_open), data);
}
- gtk_widget_show(option);
- gtk_menu_shell_append(GTK_MENU_SHELL(pmenu), option);
option = gtk_menu_item_new_with_label("Copy download URL");
gtk_widget_show(option);