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