Hi, noticed that there is a small bug in nautilus. If the gconf key "desktop/volumes_visible" is changed from TRUE to TRUE (yeah, I know that pretty much never happens). Then the visibility of the icons will effectively be toggled. you can easily test this by running gconftool -s /apps/nautilus/desktop/volumes_visible --type boolean true multiple times. The attached patch fixes this. Benjamin
diff -rU 10 nautilus/libnautilus-private/nautilus-desktop-link-monitor.c nautilus.modified/libnautilus-private/nautilus-desktop-link-monitor.c
--- nautilus/libnautilus-private/nautilus-desktop-link-monitor.c 2005-03-25 16:15:22.000000000 +0100
+++ nautilus.modified/libnautilus-private/nautilus-desktop-link-monitor.c 2005-07-07 15:17:37.000000000 +0200
@@ -310,27 +310,29 @@
static void
desktop_volumes_visible_changed (gpointer callback_data)
{
GnomeVFSVolumeMonitor *volume_monitor;
NautilusDesktopLinkMonitor *monitor;
GList *l, *volumes;
volume_monitor = gnome_vfs_get_volume_monitor ();
monitor = NAUTILUS_DESKTOP_LINK_MONITOR (callback_data);
- if (eel_preferences_get_boolean (NAUTILUS_PREFERENCES_DESKTOP_VOLUMES_VISIBLE) && monitor->details->volume_links == NULL) {
- volumes = gnome_vfs_volume_monitor_get_mounted_volumes (volume_monitor);
- for (l = volumes; l != NULL; l = l->next) {
- create_volume_link (monitor, l->data);
- gnome_vfs_volume_unref (l->data);
+ if (eel_preferences_get_boolean (NAUTILUS_PREFERENCES_DESKTOP_VOLUMES_VISIBLE)) {
+ if (monitor->details->volume_links == NULL) {
+ volumes = gnome_vfs_volume_monitor_get_mounted_volumes (volume_monitor);
+ for (l = volumes; l != NULL; l = l->next) {
+ create_volume_link (monitor, l->data);
+ gnome_vfs_volume_unref (l->data);
+ }
+ g_list_free (volumes);
}
- g_list_free (volumes);
} else {
g_list_foreach (monitor->details->volume_links, (GFunc)g_object_unref, NULL);
g_list_free (monitor->details->volume_links);
monitor->details->volume_links = NULL;
}
}
static void
nautilus_desktop_link_monitor_init (gpointer object, gpointer klass)
{
Attachment:
signature.asc
Description: This is a digitally signed message part