After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 552859 - Support fading between backgrounds
Support fading between backgrounds
Status: RESOLVED FIXED
Product: nautilus
Classification: Core
Component: general
unspecified
Other Linux
: Normal enhancement
: ---
Assigned To: Nautilus Maintainers
Nautilus Maintainers
Depends on: 552856
Blocks:
 
 
Reported: 2008-09-19 03:49 UTC by Ray Strode [halfline]
Modified: 2009-01-26 18:51 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
when switching backgrounds cross fade between the old and new one (3.87 KB, patch)
2008-09-19 03:52 UTC, Ray Strode [halfline]
none Details | Review
prevent crossfade from themed gray color at startup (4.98 KB, patch)
2008-09-22 14:37 UTC, Ray Strode [halfline]
none Details | Review
If one crossfade overrides another, don't cancel the first but just change the destination pixmap (3.73 KB, patch)
2008-10-02 14:11 UTC, Ray Strode [halfline]
none Details | Review
don't set start pixmap if already started (3.80 KB, patch)
2008-10-10 13:49 UTC, Ray Strode [halfline]
none Details | Review
Prevent tiling problem when screen resizes (6.25 KB, patch)
2008-10-22 19:50 UTC, Ray Strode [halfline]
none Details | Review
break up patch for readability, work with new transitioned signal (11.79 KB, patch)
2008-12-08 21:45 UTC, Ray Strode [halfline]
none Details | Review
fix above crash (12.19 KB, patch)
2009-01-07 20:50 UTC, Ray Strode [halfline]
none Details | Review
Fix other crash (1.49 KB, patch)
2009-01-07 20:51 UTC, Ray Strode [halfline]
committed Details | Review
Update to work with gnome-desktop 2.25.5 (12.65 KB, patch)
2009-01-20 04:45 UTC, Ray Strode [halfline]
committed Details | Review

Description Ray Strode [halfline] 2008-09-19 03:49:10 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).
Comment 1 Ray Strode [halfline] 2008-09-19 03:52:57 UTC
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.
Comment 2 Ray Strode [halfline] 2008-09-22 14:37:36 UTC
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.
Comment 3 Ray Strode [halfline] 2008-10-02 14:11:35 UTC
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.
Comment 4 Ray Strode [halfline] 2008-10-10 13:49:33 UTC
Created attachment 120336 [details] [review]
don't set start pixmap if already started

The previous patch broke the transition in some cases
Comment 5 Ray Strode [halfline] 2008-10-22 19:50:21 UTC
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.
Comment 6 Ray Strode [halfline] 2008-12-08 21:45:37 UTC
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.
Comment 7 Tomas Bzatek 2009-01-07 10:20:44 UTC
Got another crash this morning:

<snip>
  • #6 <signal handler called>
  • #7 on_background_changed
    at eel-background.c line 764
  • #8 ??
    from /lib/libglib-2.0.so.0
  • #9 g_main_context_dispatch
    from /lib/libglib-2.0.so.0
  • #10 ??
    from /lib/libglib-2.0.so.0
  • #11 g_main_loop_run
    from /lib/libglib-2.0.so.0
  • #12 IA__gtk_main
    at gtkmain.c line 1200
  • #13 main
    at nautilus-main.c line 501


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
Comment 8 Ray Strode [halfline] 2009-01-07 20:50:17 UTC
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.
Comment 9 Ray Strode [halfline] 2009-01-07 20:51:53 UTC
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.
Comment 10 Ray Strode [halfline] 2009-01-20 04:43:30 UTC
Moving to nautilus since eel is part of nautilus now.
Comment 11 Ray Strode [halfline] 2009-01-20 04:45:58 UTC
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.
Comment 12 Cosimo Cecchi 2009-01-20 11:48:16 UTC
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.
Comment 13 Andy Campbell 2009-01-26 14:36:08 UTC
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 
Comment 14 Ray Strode [halfline] 2009-01-26 14:47:08 UTC
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.
Comment 15 Andy Campbell 2009-01-26 18:51:49 UTC
(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.