rpms/gnome-desktop/devel gnome-desktop-2.24.0-fade.patch, 1.2, 1.3 gnome-desktop.spec, 1.174, 1.175

Ray Strode rstrode at fedoraproject.org
Tue Oct 14 20:07:33 UTC 2008


Author: rstrode

Update of /cvs/pkgs/rpms/gnome-desktop/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv32047

Modified Files:
	gnome-desktop-2.24.0-fade.patch gnome-desktop.spec 
Log Message:
* Tue Oct 14 2008 Ray Strode <rstrode at redhat.com> - 2.24.0-6
- Hold off on settings daemon cross fade if nautilus is going
  to do it anyway.  Grab the server while getting the initial
  pixmap source and target to prevent BadDrawable race


gnome-desktop-2.24.0-fade.patch:

Index: gnome-desktop-2.24.0-fade.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gnome-desktop/devel/gnome-desktop-2.24.0-fade.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- gnome-desktop-2.24.0-fade.patch	12 Oct 2008 17:16:49 -0000	1.2
+++ gnome-desktop-2.24.0-fade.patch	14 Oct 2008 20:07:02 -0000	1.3
@@ -1,6 +1,6 @@
 diff -up gnome-desktop-2.24.0/libgnome-desktop/gnome-bg.c.fade gnome-desktop-2.24.0/libgnome-desktop/gnome-bg.c
 --- gnome-desktop-2.24.0/libgnome-desktop/gnome-bg.c.fade	2008-09-22 17:01:45.000000000 -0400
-+++ gnome-desktop-2.24.0/libgnome-desktop/gnome-bg.c	2008-10-12 12:17:40.000000000 -0400
++++ gnome-desktop-2.24.0/libgnome-desktop/gnome-bg.c	2008-10-14 16:01:38.000000000 -0400
 @@ -37,11 +37,15 @@ Author: Soren Sandmann <sandmann at redhat.
  #include <X11/Xlib.h>
  #include <X11/Xatom.h>
@@ -25,7 +25,16 @@
  	
  	/* Cached information, only access through cache accessor functions */
          SlideShow *		slideshow;
-@@ -115,6 +120,7 @@ struct _GnomeBGClass
+@@ -106,6 +111,8 @@ struct _GnomeBG
+ 	int			timeout_id;
+ 
+ 	GList *		        file_cache;
++
++        guint                   ignore_changes : 1;
+ };
+ 
+ struct _GnomeBGClass
+@@ -115,6 +122,7 @@ struct _GnomeBGClass
  
  enum {
  	CHANGED,
@@ -33,7 +42,18 @@
  	N_SIGNALS
  };
  
-@@ -275,6 +281,30 @@ queue_changed (GnomeBG *bg)
+@@ -264,6 +272,10 @@ do_changed (GnomeBG *bg)
+ static void
+ queue_changed (GnomeBG *bg)
+ {
++	if (bg->ignore_changes) {
++		return;
++	}
++
+ 	if (bg->changed_id > 0) {
+ 		g_source_remove (bg->changed_id);
+ 	}
+@@ -275,6 +287,30 @@ queue_changed (GnomeBG *bg)
  					     NULL);
  }
  
@@ -64,7 +84,7 @@
  void
  gnome_bg_load_from_preferences (GnomeBG     *bg,
  				GConfClient *client)
-@@ -414,6 +444,14 @@ gnome_bg_class_init (GnomeBGClass *klass
+@@ -414,6 +450,14 @@ gnome_bg_class_init (GnomeBGClass *klass
  					 NULL, NULL,
  					 g_cclosure_marshal_VOID__VOID,
  					 G_TYPE_NONE, 0);
@@ -79,7 +99,21 @@
  }
  
  GnomeBG *
-@@ -1012,52 +1050,88 @@ gnome_bg_create_thumbnail (GnomeBG      
+@@ -547,6 +591,13 @@ gnome_bg_set_filename (GnomeBG     *bg,
+ 	}
+ }
+ 
++void
++gnome_bg_ignore_changes (GnomeBG *bg,
++                         gboolean should_ignore)
++{
++	bg->ignore_changes = should_ignore;
++}
++
+ static void
+ draw_color (GnomeBG *bg, GdkPixbuf *dest)
+ {
+@@ -1012,52 +1063,86 @@ gnome_bg_create_thumbnail (GnomeBG      
  }
  
  
@@ -118,8 +152,7 @@
 +	data = NULL;
  	display = GDK_DISPLAY_XDISPLAY (gdk_screen_get_display (screen));
  	
- 	XGrabServer (display);
-+
+-	XGrabServer (display);
 +	if (copy_old_root) {
 +		result = XGetWindowProperty (display,
 +					    RootWindow (display, screen_num),
@@ -186,17 +219,13 @@
  	}
  	
  	pixmap_id = GDK_WINDOW_XWINDOW (pixmap);
-@@ -1071,13 +1145,68 @@ gnome_bg_set_pixmap_as_root (GdkScreen *
+@@ -1071,13 +1156,74 @@ gnome_bg_set_pixmap_as_root (GdkScreen *
  			 32, PropModeReplace,
  			 (guchar *) &pixmap_id, 1);
  	
 -	XSetWindowBackgroundPixmap (display, RootWindow (display, screen_num),
 -				    pixmap_id);
 -	XClearWindow (display, RootWindow (display, screen_num));
--	
- 	XUngrabServer (display);
- 	
- 	XFlush (display);
 +	return old_root_pixmap;
 +}
 +
@@ -211,19 +240,25 @@
 +{
 +	Display *display;
 +	int      screen_num;
-+	
+ 	
+-	XUngrabServer (display);
 +	g_return_if_fail (screen != NULL);
 +	g_return_if_fail (pixmap != NULL);
-+	
+ 	
 +	screen_num = gdk_screen_get_number (screen);
 +	display = GDK_DISPLAY_XDISPLAY (gdk_screen_get_display (screen));
 +
++	XGrabServer (display);
++
 +	gnome_bg_set_root_pixmap_id (screen, pixmap, FALSE);
 +
 +	XSetWindowBackgroundPixmap (display, RootWindow (display, screen_num),
 +				    GDK_PIXMAP_XID (pixmap));
 +	XClearWindow (display, RootWindow (display, screen_num));
-+	
++
+ 	XFlush (display);
++
++	XUngrabServer (display);
 +}
 +
 +GnomeBGCrossfade * 
@@ -231,7 +266,7 @@
 +                                       GdkPixmap    *pixmap,
 +                                       GMainContext *context)
 +{
-+	Display *display;
++	GdkDisplay *display;
 +	GdkWindow *root_window;
 +	GdkPixmap *old_pixmap;
 +	int      screen_num;
@@ -248,10 +283,14 @@
 +
 +	fade = gnome_bg_crossfade_new (width, height);
 +
++	display = gdk_screen_get_display (screen);
++	gdk_x11_display_grab (display);
 +	old_pixmap = gnome_bg_set_root_pixmap_id (screen, pixmap, TRUE);
 +
 +	gnome_bg_crossfade_set_start_pixmap (fade, old_pixmap);
 +	gnome_bg_crossfade_set_end_pixmap (fade, pixmap);
++	gdk_display_flush (display);
++	gdk_x11_display_ungrab (display);
 +
 +	gnome_bg_crossfade_start (fade, root_window, context);
 +
@@ -259,7 +298,7 @@
  }
  
  
-@@ -1343,7 +1472,7 @@ on_timeout (gpointer data)
+@@ -1343,7 +1489,7 @@ on_timeout (gpointer data)
  
  	bg->timeout_id = 0;
  	
@@ -269,8 +308,8 @@
  	return FALSE;
  }
 diff -up /dev/null gnome-desktop-2.24.0/libgnome-desktop/gnome-bg-crossfade.c
---- /dev/null	2008-10-12 06:46:34.272291660 -0400
-+++ gnome-desktop-2.24.0/libgnome-desktop/gnome-bg-crossfade.c	2008-10-10 19:17:21.000000000 -0400
+--- /dev/null	2008-10-14 09:46:12.473279410 -0400
++++ gnome-desktop-2.24.0/libgnome-desktop/gnome-bg-crossfade.c	2008-10-14 15:21:15.000000000 -0400
 @@ -0,0 +1,432 @@
 +/* gnome-bg-crossfade.h - fade window background between two pixmaps
 + *
@@ -493,6 +532,7 @@
 +		cairo_pattern_set_extend (pattern, CAIRO_EXTEND_REPEAT);
 +	} else {
 +		GtkStyle *style;
++                sleep (30);
 +		style = gtk_widget_get_default_style ();
 +		gdk_cairo_set_source_color (cr, &style->bg[GTK_STATE_NORMAL]);
 +	}
@@ -636,12 +676,11 @@
 +on_finished (GnomeBGCrossfade *fade)
 +{
 +	if (fade->priv->end_pixmap != NULL) {
++		GdkDisplay *display;
 +		gdk_window_set_back_pixmap (fade->priv->window,
 +					    fade->priv->end_pixmap,
 +					    FALSE);
-+		GdkDisplay *display;
 +		display = gdk_drawable_get_display (fade->priv->window);
-+		gdk_window_clear (fade->priv->window);
 +		gdk_display_sync (display);
 +	}
 +
@@ -705,8 +744,8 @@
 +	}
 +}
 diff -up /dev/null gnome-desktop-2.24.0/libgnome-desktop/libgnomeui/gnome-bg-crossfade.h
---- /dev/null	2008-10-12 06:46:34.272291660 -0400
-+++ gnome-desktop-2.24.0/libgnome-desktop/libgnomeui/gnome-bg-crossfade.h	2008-10-10 18:21:11.000000000 -0400
+--- /dev/null	2008-10-14 09:46:12.473279410 -0400
++++ gnome-desktop-2.24.0/libgnome-desktop/libgnomeui/gnome-bg-crossfade.h	2008-10-14 15:21:15.000000000 -0400
 @@ -0,0 +1,79 @@
 +/* gnome-bg-crossfade.h - fade window background between two pixmaps
 +
@@ -789,7 +828,7 @@
 +#endif
 diff -up gnome-desktop-2.24.0/libgnome-desktop/libgnomeui/gnome-bg.h.fade gnome-desktop-2.24.0/libgnome-desktop/libgnomeui/gnome-bg.h
 --- gnome-desktop-2.24.0/libgnome-desktop/libgnomeui/gnome-bg.h.fade	2008-09-22 17:01:45.000000000 -0400
-+++ gnome-desktop-2.24.0/libgnome-desktop/libgnomeui/gnome-bg.h	2008-10-10 18:21:11.000000000 -0400
++++ gnome-desktop-2.24.0/libgnome-desktop/libgnomeui/gnome-bg.h	2008-10-14 15:21:15.000000000 -0400
 @@ -33,6 +33,8 @@
  #include <gdk/gdk.h>
  #include <gconf/gconf-client.h>
@@ -799,7 +838,16 @@
  G_BEGIN_DECLS
  
  #define GNOME_TYPE_BG            (gnome_bg_get_type ())
-@@ -109,6 +111,9 @@ gboolean         gnome_bg_changes_with_s
+@@ -63,6 +65,8 @@ typedef enum {
+ 
+ GType            gnome_bg_get_type              (void);
+ GnomeBG *        gnome_bg_new                   (void);
++void             gnome_bg_ignore_changes        (GnomeBG *bg,
++                                                 gboolean should_ignore);
+ void             gnome_bg_load_from_preferences (GnomeBG               *bg,
+ 						 GConfClient           *client);
+ void             gnome_bg_save_to_preferences   (GnomeBG               *bg,
+@@ -109,6 +113,9 @@ gboolean         gnome_bg_changes_with_s
  void             gnome_bg_set_pixmap_as_root    (GdkScreen             *screen,
  						 GdkPixmap             *pixmap);
  
@@ -811,7 +859,7 @@
  
 diff -up gnome-desktop-2.24.0/libgnome-desktop/libgnomeui/Makefile.am.fade gnome-desktop-2.24.0/libgnome-desktop/libgnomeui/Makefile.am
 --- gnome-desktop-2.24.0/libgnome-desktop/libgnomeui/Makefile.am.fade	2008-09-22 17:01:45.000000000 -0400
-+++ gnome-desktop-2.24.0/libgnome-desktop/libgnomeui/Makefile.am	2008-10-10 18:21:11.000000000 -0400
++++ gnome-desktop-2.24.0/libgnome-desktop/libgnomeui/Makefile.am	2008-10-14 15:21:15.000000000 -0400
 @@ -3,6 +3,7 @@ libgnomeui_desktop_HEADERS =	\
  	gnome-ditem-edit.h	\
  	gnome-hint.h		\
@@ -822,7 +870,7 @@
  	gnome-rr-labeler.h
 diff -up gnome-desktop-2.24.0/libgnome-desktop/Makefile.am.fade gnome-desktop-2.24.0/libgnome-desktop/Makefile.am
 --- gnome-desktop-2.24.0/libgnome-desktop/Makefile.am.fade	2008-09-22 17:01:45.000000000 -0400
-+++ gnome-desktop-2.24.0/libgnome-desktop/Makefile.am	2008-10-10 18:21:11.000000000 -0400
++++ gnome-desktop-2.24.0/libgnome-desktop/Makefile.am	2008-10-14 15:21:15.000000000 -0400
 @@ -21,6 +21,7 @@ libgnome_desktop_2_la_SOURCES = \
  	gnome-ditem-edit.c	\
  	gnome-hint.c		\


Index: gnome-desktop.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gnome-desktop/devel/gnome-desktop.spec,v
retrieving revision 1.174
retrieving revision 1.175
diff -u -r1.174 -r1.175
--- gnome-desktop.spec	12 Oct 2008 17:16:49 -0000	1.174
+++ gnome-desktop.spec	14 Oct 2008 20:07:02 -0000	1.175
@@ -12,7 +12,7 @@
 Summary: Package containing code shared among gnome-panel, gnome-session, nautilus, etc
 Name: gnome-desktop
 Version: 2.24.0
-Release: 5%{?dist}
+Release: 6%{?dist}
 URL: http://www.gnome.org
 Source0: http://download.gnome.org/sources/gnome-desktop/2.24/%{name}-%{version}.tar.bz2
 License: GPLv2+ and LGPLv2+
@@ -126,6 +126,11 @@
 %doc %{_datadir}/gtk-doc/html/gnome-desktop/
 
 %changelog
+* Tue Oct 14 2008 Ray Strode <rstrode at redhat.com> - 2.24.0-6
+- Hold off on settings daemon cross fade if nautilus is going
+  to do it anyway.  Grab the server while getting the initial
+  pixmap source and target to prevent BadDrawable race
+
 * Sun Oct 12 2008 Ray Strode <rstrode at redhat.com> - 2.24.0-5
 - Don't crossfade between frames on a slideshow
 




More information about the scm-commits mailing list