diff -up gnome-settings-daemon-2.24.0/plugins/background/gsd-background-manager.c.fade gnome-settings-daemon-2.24.0/plugins/background/gsd-background-manager.c --- gnome-settings-daemon-2.24.0/plugins/background/gsd-background-manager.c.fade 2008-08-04 10:25:52.000000000 -0400 +++ gnome-settings-daemon-2.24.0/plugins/background/gsd-background-manager.c 2008-09-24 16:37:50.000000000 -0400 @@ -174,6 +174,7 @@ draw_background (GsdBackgroundManager *m GdkScreen *screen; GdkWindow *root_window; GdkPixmap *pixmap; + GnomeBGCrossfade *fade; screen = gdk_display_get_screen (display, i); @@ -185,7 +186,9 @@ draw_background (GsdBackgroundManager *m gdk_screen_get_height (screen), TRUE); - gnome_bg_set_pixmap_as_root (screen, pixmap); + fade = gnome_bg_set_pixmap_as_root_with_crossfade (screen, pixmap, NULL); + g_signal_connect (fade, "finished", + G_CALLBACK (g_object_unref), NULL); g_object_unref (pixmap); } @@ -267,9 +270,7 @@ gsd_background_manager_start (GsdBackgro "/apps/nautilus/preferences/show_desktop", NULL); - if (!nautilus_show_desktop) { - draw_background (manager); - } else { + if (nautilus_show_desktop) { /* even when nautilus is supposedly handling the * background, apply the settings eventually to make * people running a nautilus-less session happy */