summaryrefslogtreecommitdiffstats
path: root/xfce/xfdesktop/xfdesktop-handle-unmountable-volumes.patch
diff options
context:
space:
mode:
Diffstat (limited to 'xfce/xfdesktop/xfdesktop-handle-unmountable-volumes.patch')
-rwxr-xr-xxfce/xfdesktop/xfdesktop-handle-unmountable-volumes.patch154
1 files changed, 154 insertions, 0 deletions
diff --git a/xfce/xfdesktop/xfdesktop-handle-unmountable-volumes.patch b/xfce/xfdesktop/xfdesktop-handle-unmountable-volumes.patch
new file mode 100755
index 000000000..36ac40229
--- /dev/null
+++ b/xfce/xfdesktop/xfdesktop-handle-unmountable-volumes.patch
@@ -0,0 +1,154 @@
+diff -rNaud xfdesktop-SVN29407-orig/src/xfdesktop-volume-icon.c xfdesktop-SVN29407/src/xfdesktop-volume-icon.c
+--- xfdesktop-SVN29407-orig/src/xfdesktop-volume-icon.c 2009-01-29 21:29:52.000000000 +0100
++++ xfdesktop-SVN29407/src/xfdesktop-volume-icon.c 2009-02-01 15:23:22.000000000 +0100
+@@ -505,17 +505,6 @@
+ else
+ thunar_vfs_volume_mount(icon->priv->volume, toplevel, &error);
+
+- if(error) {
+- gchar *primary = g_markup_printf_escaped(is_mount ? _("Unable to mount \"%s\":")
+- : _("Unable to unmount \"%s\":"),
+- thunar_vfs_volume_get_name(icon->priv->volume));
+- xfce_message_dialog(toplevel ? GTK_WINDOW(toplevel) : NULL,
+- is_mount ? _("Mount Failed") : _("Unmount Failed"),
+- GTK_STOCK_DIALOG_ERROR, primary, error->message,
+- GTK_STOCK_CLOSE, GTK_RESPONSE_ACCEPT, NULL);
+- g_free(primary);
+- g_error_free(error);
+- }
+ }
+
+ static void
+@@ -555,35 +544,41 @@
+ ThunarVfsVolume *volume = volume_icon->priv->volume;
+ GtkWidget *mi, *img;
+
+- img = gtk_image_new_from_stock(GTK_STOCK_OPEN, GTK_ICON_SIZE_MENU);
+- gtk_widget_show(img);
+- mi = gtk_image_menu_item_new_with_mnemonic(_("_Open"));
+- gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img);
+- gtk_widget_show(mi);
+- gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
+- g_signal_connect_swapped(G_OBJECT(mi), "activate",
+- G_CALLBACK(xfdesktop_icon_activated), icon);
+-
+- mi = gtk_separator_menu_item_new();
+- gtk_widget_show(mi);
+- gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
+-
+- if(thunar_vfs_volume_is_ejectable(volume)
+- && thunar_vfs_volume_is_mounted(volume))
+- {
+- img = gtk_image_new_from_icon_name("media-eject", GTK_ICON_SIZE_MENU);
+- gtk_widget_show(img);
+- mi = gtk_image_menu_item_new_with_mnemonic(_("E_ject Volume"));
+- gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img);
+- gtk_widget_show(mi);
+- gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
+- g_signal_connect(G_OBJECT(mi), "activate",
+- G_CALLBACK(xfdesktop_volume_icon_menu_eject),
+- icon);
+- } else {
+- if(thunar_vfs_volume_is_mounted(volume)) {
+- img = gtk_image_new_from_stock(GTK_STOCK_DISCONNECT, GTK_ICON_SIZE_MENU);
+- mi = gtk_image_menu_item_new_with_mnemonic(_("_Unmount Volume"));
++ if(thunar_vfs_volume_is_mountable(volume))
++ {
++
++ img = gtk_image_new_from_stock(GTK_STOCK_OPEN, GTK_ICON_SIZE_MENU);
++ gtk_widget_show(img);
++ mi = gtk_image_menu_item_new_with_mnemonic(_("_Open"));
++ gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img);
++ gtk_widget_show(mi);
++ gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
++ g_signal_connect_swapped(G_OBJECT(mi), "activate",
++ G_CALLBACK(xfdesktop_icon_activated), icon);
++
++ mi = gtk_separator_menu_item_new();
++ gtk_widget_show(mi);
++ gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
++
++ if(thunar_vfs_volume_is_mounted(volume))
++ {
++ if(thunar_vfs_volume_is_ejectable(volume))
++ {
++ img = gtk_image_new_from_icon_name("media-eject", GTK_ICON_SIZE_MENU);
++ gtk_widget_show(img);
++ mi = gtk_image_menu_item_new_with_mnemonic(_("E_ject Volume"));
++ gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img);
++ gtk_widget_show(mi);
++ gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
++ g_signal_connect(G_OBJECT(mi), "activate",
++ G_CALLBACK(xfdesktop_volume_icon_menu_eject),
++ icon);
++ }
++ else
++ {
++ img = gtk_image_new_from_stock(GTK_STOCK_DISCONNECT, GTK_ICON_SIZE_MENU);
++ mi = gtk_image_menu_item_new_with_mnemonic(_("_Unmount Volume"));
++ }
+ } else {
+ img = gtk_image_new_from_stock(GTK_STOCK_CONNECT, GTK_ICON_SIZE_MENU);
+ mi = gtk_image_menu_item_new_with_mnemonic(_("_Mount Volume"));
+@@ -595,26 +590,41 @@
+ g_signal_connect(G_OBJECT(mi), "activate",
+ G_CALLBACK(xfdesktop_volume_icon_menu_toggle_mount),
+ icon);
+- }
+-
+- mi = gtk_separator_menu_item_new();
+- gtk_widget_show(mi);
+- gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
+-
+- img = gtk_image_new_from_stock(GTK_STOCK_PROPERTIES, GTK_ICON_SIZE_MENU);
+- gtk_widget_show(img);
+- mi = gtk_image_menu_item_new_with_mnemonic(_("_Properties..."));
+- gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img);
+- gtk_widget_show(mi);
+- gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
+- if(!volume_icon->priv->info)
+- gtk_widget_set_sensitive(mi, FALSE);
+- else {
+- g_signal_connect(G_OBJECT(mi), "activate",
+- G_CALLBACK(xfdesktop_volume_icon_menu_properties),
+- icon);
+- }
+-
++
++ mi = gtk_separator_menu_item_new();
++ gtk_widget_show(mi);
++ gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
++
++ img = gtk_image_new_from_stock(GTK_STOCK_PROPERTIES, GTK_ICON_SIZE_MENU);
++ gtk_widget_show(img);
++ mi = gtk_image_menu_item_new_with_mnemonic(_("_Properties..."));
++ gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img);
++ gtk_widget_show(mi);
++ gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
++ if(!volume_icon->priv->info)
++ gtk_widget_set_sensitive(mi, FALSE);
++ else {
++ g_signal_connect(G_OBJECT(mi), "activate",
++ G_CALLBACK(xfdesktop_volume_icon_menu_properties),
++ icon);
++ }
++ }
++ else
++ {
++ if(thunar_vfs_volume_is_ejectable(volume))
++ {
++ img = gtk_image_new_from_icon_name("media-eject", GTK_ICON_SIZE_MENU);
++ gtk_widget_show(img);
++ mi = gtk_image_menu_item_new_with_mnemonic(_("E_ject Volume"));
++ gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img);
++ gtk_widget_show(mi);
++ gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
++ g_signal_connect(G_OBJECT(mi), "activate",
++ G_CALLBACK(xfdesktop_volume_icon_menu_eject),
++ icon);
++ }
++ }
++
+ return TRUE;
+ }
+