diff -u gnome-desktop-2.22.2/debian/changelog gnome-desktop-2.22.2/debian/changelog --- gnome-desktop-2.22.2/debian/changelog +++ gnome-desktop-2.22.2/debian/changelog @@ -1,3 +1,10 @@ +gnome-desktop (1:2.22.2-0ubuntu2) hardy-proposed; urgency=low + + * debian/patches/91_from_svn_fix_background_corruption.patch: + - change from svn, fix background corruption (lp: #191220) + + -- Sebastien Bacher Wed, 28 May 2008 23:12:00 +0200 + gnome-desktop (1:2.22.2-0ubuntu1) hardy-updates; urgency=low * New upstream version (lp: #235073): only in patch2: unchanged: --- gnome-desktop-2.22.2.orig/debian/patches/91_from_svn_fix_background_corruption.patch +++ gnome-desktop-2.22.2/debian/patches/91_from_svn_fix_background_corruption.patch @@ -0,0 +1,90 @@ +diff -Nur -x '*.orig' -x '*~' gnome-desktop-2.22.2/libgnome-desktop/gnome-bg.c gnome-desktop-2.22.2.new/libgnome-desktop/gnome-bg.c +--- gnome-desktop-2.22.2/libgnome-desktop/gnome-bg.c 2008-05-29 00:21:01.000000000 +0200 ++++ gnome-desktop-2.22.2.new/libgnome-desktop/gnome-bg.c 2008-05-29 00:22:19.000000000 +0200 +@@ -81,6 +81,8 @@ + int timeout_id; + + GList * file_cache; ++ ++ guint changed_id; + }; + + struct _GnomeBGClass +@@ -148,6 +150,29 @@ + static Slide * get_current_slide (SlideShow *show, + double *alpha); + ++static gboolean ++do_changed (GnomeBG *bg) ++{ ++ bg->changed_id = 0; ++ ++ g_signal_emit (G_OBJECT (bg), signals[CHANGED], 0); ++ ++ return FALSE; ++} ++ ++static void ++queue_changed (GnomeBG *bg) ++{ ++ if (bg->changed_id > 0) { ++ g_source_remove (bg->changed_id); ++ } ++ ++ bg->changed_id = g_idle_add_full (G_PRIORITY_LOW, ++ (GSourceFunc)do_changed, ++ bg, ++ NULL); ++} ++ + static void + gnome_bg_init (GnomeBG *bg) + { +@@ -158,6 +183,11 @@ + { + GnomeBG *bg = GNOME_BG (object); + ++ if (bg->changed_id != 0) { ++ g_source_remove (bg->changed_id); ++ bg->changed_id = 0; ++ } ++ + clear_cache (bg); + + G_OBJECT_CLASS (gnome_bg_parent_class)->finalize (object); +@@ -217,7 +247,7 @@ + bg->c2 = *c2; + } + +- emit_changed (bg); ++ queue_changed (bg); + } + } + +@@ -230,7 +260,7 @@ + if (bg->placement != placement) { + bg->placement = placement; + +- emit_changed (bg); ++ queue_changed (bg); + } + } + +@@ -256,7 +286,7 @@ + + clear_cache (bg); + +- emit_changed (bg); ++ queue_changed (bg); + } + + g_free (free_me); +@@ -1043,7 +1073,7 @@ + + bg->timeout_id = 0; + +- emit_changed (bg); ++ queue_changed (bg); + + return FALSE; + }