GNOME Bugzilla – Bug 552859
Support fading between backgrounds
Last modified: 2009-01-26 18:51:49 UTC
Right now when switching desktop backgrounds in the appearance capplet it just cuts immediately from one to the other. A nice subtle piece of polish would be to crossfade between the old background and the new one. In bug 552856 I attached a patch to add new apis to allow for cross fades. Below I'll attach a patch to use the new apis (I attached a similiar patch for gnome-settings-daemon to bug 552857 for when nautilus isn't running).
Created attachment 118984 [details] [review] when switching backgrounds cross fade between the old and new one This patch adds the crossfade effect to the nautilus desktop window and file windows.
Created attachment 119166 [details] [review] prevent crossfade from themed gray color at startup The previous patch made a brief flicker during login that mclasen pointed out to me this morning. This should fix that issue.
Created attachment 119777 [details] [review] If one crossfade overrides another, don't cancel the first but just change the destination pixmap This patch makes things behave a little more sensibly if one crossfade starts while another is already going. Previously, it would cancel the first crossfade and then initiate a new crossfade. Now it merges the two fades, changing what image the background is getting faded to.
Created attachment 120336 [details] [review] don't set start pixmap if already started The previous patch broke the transition in some cases
Created attachment 121157 [details] [review] Prevent tiling problem when screen resizes Matthias noticed that this patch caused a tiling issue when the screen resized. This patch addresses that problem.
Created attachment 124213 [details] [review] break up patch for readability, work with new transitioned signal in the gnome-desktop part of this bug, gnome-bg gained a new "transitioned" signal so we don't crossfade between slide frames and instead only do the slide frame transition. This patch takes advantage of it. I also split up the patch to make it easier to review.
Got another crash this morning: <snip>
+ Trace 211346
static gboolean on_background_changed (GtkWidget *widget) { EelBackground *background; background = eel_get_widget_background (widget); background->details->change_idle_id = 0; ... background is NULL in this case as reported by this assert: (nautilus:3919): Eel-CRITICAL **: eel_get_widget_background: assertion `GTK_IS_WIDGET (widget)' failed
Created attachment 125963 [details] [review] fix above crash The above crash is triggered from starting nautilus and then closing the home window that pops up very soon, before it's fully populated. This patch fixes that issue, but then there's another (harder to hit) crash triggerable in the same way.
Created attachment 125964 [details] [review] Fix other crash This patch seems to fix the harder to hit crash. It seems to be a bug that's unrelated to the changes in this report.
Moving to nautilus since eel is part of nautilus now.
Created attachment 126819 [details] [review] Update to work with gnome-desktop 2.25.5 The gnome-desktop bits landed today and got into 2.25.5. This patch updates nautilus to use the slightly modified api that made it into 2.25.5 and also fixes a problem where it was fading from white instead of the previous background in some cases.
Thanks for the patches, committed to trunk. 2009-01-20 Cosimo Cecchi <cosimoc@gnome.org> * eel-background.c: (on_bg_changed), (on_bg_transitioned), (eel_background_init), (free_fade), (eel_background_finalize), (set_root_pixmap), (fade_to_pixmap), (eel_background_set_up_widget), (on_background_changed), (init_fade), (eel_widget_queue_background_change), (widget_style_set_cb), (widget_realized_setup), (on_widget_destroyed), (eel_get_widget_background): Support fading between backgrounds. Bug #552859, patch by Ray Strode.
This patch doesn't work well with big desktops/big images. I find during a wallpaper change the desktop freezes for a few seconds. I used to use Wallpaper Tray to switch my background every 1hr, but now have to keep a fixed background. I have two monitors, main 2560x1600 and second 1280x1024 set up as individual X servers. Machine spec, CPU:Quad Core Intel, Graphics:GeForce 8800 GTS. Doesn't seem to be an issue with my laptop, even with a second screen attached. I'm using Fedora 10, eel2 version ... eel-2.24.0-fade.patch eel-2.24.1.tar.bz2
Your issue sounds like a bug in older versions of the proprietary nvidia driver. See https://bugzilla.redhat.com/show_bug.cgi?id=465699 for more details.
(In reply to comment #14) > Your issue sounds like a bug in older versions of the proprietary nvidia > driver. > > See https://bugzilla.redhat.com/show_bug.cgi?id=465699 for more details. > I've upgraded to the latest beta NVIDIA drivers ( 180.22 ) and that seems to have resolved the problem ... yum --enablerepo=rpmfusion-nonfree-updates-testing update "akmod-nvidia" The other workaround mentioned didn't work ... nvidia-settings -a InitialPixmapPlacement=2 Could not test the open source nv driver as it does not work for my 30" monitor, no dual-dvi support from memory.