Package: xfdesktop4 Version: 4.4.2-1scorpi0 Severity: normal Tags: patch Hi,
in the fix for http://bugzilla.xfce.org/show_bug.cgi?id=3119, Benedikt added a function thunar_vfs_volume_is_ejectable(), so that Thunar can show an "Eject" in the context menu of volumes that support eject. However, xfdesktop4 only enables this if thunar_vfs_volume_is_disc() returns true, so "Eject" is only shown for optical discs. I attach 2 patches, both of them fix this bug. One is a minimal patch to add "Eject" to the menu, and another patch that also makes the menu consistent with Thunar (see http://foo-projects.org/pipermail/thunar-dev/2007-December/004298.html and the following mails). Regards, Tino -- System Information: Debian Release: lenny/sid APT prefers unstable APT policy: (500, 'unstable'), (1, 'experimental') Architecture: i386 (i686) Kernel: Linux 2.6.23.8 (SMP w/2 CPU cores) Locale: LANG=C, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages xfdesktop4 depends on: ii libatk1.0-0 1.20.0-1 The ATK accessibility toolkit ii libc6 2.7-4 GNU C Library: Shared libraries ii libcairo2 1.4.10-1.2 The Cairo 2D vector graphics libra ii libdbus-1-3 1.1.2-1 simple interprocess messaging syst ii libdbus-glib-1-2 0.74-1 simple interprocess messaging syst ii libexo-0.3-0 0.3.4-1 Library with extensions for Xfce ii libfontconfig1 2.5.0-2 generic font configuration library ii libfreetype6 2.3.5-1+b1 FreeType 2 font engine, shared lib ii libglib2.0-0 2.14.4-2 The GLib library of C routines ii libgtk2.0-0 2.12.3-1 The GTK+ graphical user interface ii libice6 2:1.0.4-1 X11 Inter-Client Exchange library ii libpango1.0-0 1.18.3-1 Layout and rendering of internatio ii libpng12-0 1.2.15~beta5-3 PNG library - runtime ii libsm6 2:1.0.3-1+b1 X11 Session Management library ii libthunar-vfs-1-2 0.9.0-1scorpi0 VFS abstraction used in thunar ii libx11-6 2:1.0.3-7 X11 client-side library ii libxfce4mcs-client3 4.4.2-1 Client library for Xfce4 configure ii libxfce4util4 4.4.2-1 Utility functions library for Xfce ii libxfcegui4-4 4.4.2-1 Basic GUI C functions for Xfce4 ii libxrender1 1:0.9.4-1 X Rendering Extension client libra ii xfce4-mcs-manager 4.4.2-1 Settings manager for Xfce4 ii xfce4-panel 4.4.2-1 The Xfce4 desktop environment pane ii xfce4-utils 4.4.2-3 Various tools for Xfce ii xfdesktop4-data 4.4.2-1scorpi0 Provides xfdesktop4 desktop backgr ii zlib1g 1:1.2.3.3.dfsg-7 compression library - runtime Versions of packages xfdesktop4 recommends: ii dbus 1.1.2-1 simple interprocess messaging syst ii librsvg2-common 2.18.2-1 SAX-based renderer library for SVG -- debconf-show failed
diff -ru xfdesktop4-4.4.2.orig/src/xfdesktop-volume-icon.c xfdesktop4-4.4.2/src/xfdesktop-volume-icon.c --- xfdesktop4-4.4.2.orig/src/xfdesktop-volume-icon.c 2007-11-17 20:31:41.000000000 +0100 +++ xfdesktop4-4.4.2/src/xfdesktop-volume-icon.c 2007-12-11 22:14:46.005592273 +0100 @@ -573,8 +573,7 @@ icon); } - if(thunar_vfs_volume_is_disc(volume) - && thunar_vfs_volume_is_ejectable(volume)) + if(thunar_vfs_volume_is_ejectable(volume)) { mi = gtk_image_menu_item_new_with_mnemonic(_("E_ject Volume")); gtk_widget_show(mi);
diff -ru xfdesktop4-4.4.2.orig/src/xfdesktop-volume-icon.c xfdesktop4-4.4.2/src/xfdesktop-volume-icon.c --- xfdesktop4-4.4.2.orig/src/xfdesktop-volume-icon.c 2007-11-17 20:31:41.000000000 +0100 +++ xfdesktop4-4.4.2/src/xfdesktop-volume-icon.c 2007-12-12 01:07:27.421327344 +0100 @@ -562,19 +562,7 @@ icon); } - mi = gtk_image_menu_item_new_with_mnemonic(_("_Unmount Volume")); - gtk_widget_show(mi); - gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); - if(!thunar_vfs_volume_is_mounted(volume)) - gtk_widget_set_sensitive(mi, FALSE); - else { - g_signal_connect(G_OBJECT(mi), "activate", - G_CALLBACK(xfdesktop_volume_icon_menu_toggle_mount), - icon); - } - - if(thunar_vfs_volume_is_disc(volume) - && thunar_vfs_volume_is_ejectable(volume)) + if(thunar_vfs_volume_is_ejectable(volume)) { mi = gtk_image_menu_item_new_with_mnemonic(_("E_ject Volume")); gtk_widget_show(mi); @@ -582,6 +570,17 @@ g_signal_connect(G_OBJECT(mi), "activate", G_CALLBACK(xfdesktop_volume_icon_menu_eject), icon); + } else { + mi = gtk_image_menu_item_new_with_mnemonic(_("_Unmount Volume")); + gtk_widget_show(mi); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi); + if(!thunar_vfs_volume_is_mounted(volume)) + gtk_widget_set_sensitive(mi, FALSE); + else { + g_signal_connect(G_OBJECT(mi), "activate", + G_CALLBACK(xfdesktop_volume_icon_menu_toggle_mount), + icon); + } } mi = gtk_separator_menu_item_new();