rpms/gnome-desktop/devel gnome-desktop-2.24.0-fade.patch, 1.3, 1.4 gnome-desktop.spec, 1.175, 1.176
Ray Strode
rstrode at fedoraproject.org
Wed Oct 15 15:17:26 UTC 2008
- Previous message: rpms/blender/devel blender-2.47-scons.patch, NONE, 1.1 blender-2.47.config, NONE, 1.1 blender.spec, 1.85, 1.86 sources, 1.18, 1.19 blender-2.44-scons.patch, 1.1, NONE blender-2.44.config, 1.2, NONE
- Next message: rpms/ghostscript/devel ghostscript.spec,1.175,1.176
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: rstrode
Update of /cvs/pkgs/rpms/gnome-desktop/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv16523
Modified Files:
gnome-desktop-2.24.0-fade.patch gnome-desktop.spec
Log Message:
- Add new api for getting the root window pixmap
- Pass start window to crossfade "finished" signal
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.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- gnome-desktop-2.24.0-fade.patch 14 Oct 2008 20:07:02 -0000 1.3
+++ gnome-desktop-2.24.0-fade.patch 15 Oct 2008 15:17:25 -0000 1.4
@@ -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
+diff -upb 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-14 16:01:38.000000000 -0400
++++ gnome-desktop-2.24.0/libgnome-desktop/gnome-bg.c 2008-10-15 11:12:56.000000000 -0400
@@ -37,11 +37,15 @@ Author: Soren Sandmann <sandmann at redhat.
#include <X11/Xlib.h>
#include <X11/Xatom.h>
@@ -113,9 +113,24 @@
static void
draw_color (GnomeBG *bg, GdkPixbuf *dest)
{
-@@ -1012,52 +1063,86 @@ gnome_bg_create_thumbnail (GnomeBG
+@@ -1011,15 +1062,74 @@ gnome_bg_create_thumbnail (GnomeBG
+ return result;
}
++GdkPixmap *
++gnome_bg_get_pixmap_from_root (GdkScreen *screen)
++{
++ int result;
++ gint format;
++ gulong nitems;
++ gulong bytes_after;
++ guchar *data;
++ Atom type;
++ Display *display;
++ int screen_num;
++ GdkPixmap *pixmap;
++
++ display = GDK_DISPLAY_XDISPLAY (gdk_screen_get_display (screen));
-/* Set the root pixmap, and properties pointing to it. We
- * do this atomically with XGrabServer to make sure that
@@ -125,108 +140,83 @@
- */
-void
-gnome_bg_set_pixmap_as_root (GdkScreen *screen, GdkPixmap *pixmap)
-+static GdkPixmap *
++ result = XGetWindowProperty (display,
++ RootWindow (display, screen_num),
++ gdk_x11_get_xatom_by_name ("_XROOTPMAP_ID"),
++ 0L, 1L, False, XA_PIXMAP,
++ &type, &format, &nitems, &bytes_after,
++ &data);
++ pixmap = NULL;
++
++ if (data != NULL) {
++ if (result == Success && type == XA_PIXMAP &&
++ format == 32 && nitems == 1) {
++ GdkPixmap *source_pixmap;
++ int width, height;
++ cairo_t *cr;
++ cairo_pattern_t *pattern;
++
++ source_pixmap = gdk_pixmap_foreign_new (*(Pixmap *) data);
++ gdk_drawable_set_colormap (source_pixmap, gdk_screen_get_default_colormap (screen));
++
++ width = gdk_screen_get_width (screen);
++ height = gdk_screen_get_width (screen);
++
++ pixmap = gdk_pixmap_new (source_pixmap != NULL? source_pixmap :
++ gdk_screen_get_root_window (screen),
++ width, height, -1);
++
++ cr = gdk_cairo_create (pixmap);
++ if (source_pixmap != NULL) {
++ gdk_cairo_set_source_pixmap (cr, source_pixmap, 0, 0);
++ pattern = cairo_get_source (cr);
++ cairo_pattern_set_extend (pattern, CAIRO_EXTEND_REPEAT);
++ } else {
++ cairo_set_source_rgb (cr, 0.0, 0.0, 0.0);
++ }
++ cairo_paint (cr);
++
++ if (cairo_status (cr) != CAIRO_STATUS_SUCCESS) {
++ g_object_unref (pixmap);
++ pixmap = NULL;
++ }
++ cairo_destroy (cr);
++
++ g_object_unref (source_pixmap);
++ }
++ XFree (data);
++ }
++
++ return pixmap;
++}
++
++static void
+gnome_bg_set_root_pixmap_id (GdkScreen *screen,
-+ GdkPixmap *pixmap,
-+ gboolean copy_old_root)
++ GdkPixmap *pixmap)
{
int result;
gint format;
- gulong nitems;
- gulong bytes_after;
-- guchar *data_esetroot;
-+ guchar *data;
- Pixmap pixmap_id;
- Atom type;
+@@ -1031,15 +1141,10 @@ gnome_bg_set_pixmap_as_root (GdkScreen *
Display *display;
int screen_num;
--
+
- g_return_if_fail (screen != NULL);
- g_return_if_fail (pixmap != NULL);
-+ GdkPixmap *old_root_pixmap;
-
+-
screen_num = gdk_screen_get_number (screen);
-
-- data_esetroot = NULL;
-+ old_root_pixmap = NULL;
-+ data = NULL;
- display = GDK_DISPLAY_XDISPLAY (gdk_screen_get_display (screen));
+ data_esetroot = NULL;
+- display = GDK_DISPLAY_XDISPLAY (gdk_screen_get_display (screen));
- XGrabServer (display);
-+ if (copy_old_root) {
-+ result = XGetWindowProperty (display,
-+ RootWindow (display, screen_num),
-+ gdk_x11_get_xatom_by_name ("_XROOTPMAP_ID"),
-+ 0L, 1L, False, XA_PIXMAP,
-+ &type, &format, &nitems, &bytes_after,
-+ &data);
-+
-+ if (data != NULL) {
-+ if (result == Success && type == XA_PIXMAP &&
-+ format == 32 && nitems == 1) {
-+ GdkPixmap *source_pixmap;
-+ int width, height;
-+ cairo_t *cr;
-+ cairo_pattern_t *pattern;
-+
-+ source_pixmap = gdk_pixmap_foreign_new (*(Pixmap *) data);
-+ gdk_drawable_set_colormap (source_pixmap, gdk_screen_get_default_colormap (screen));
-+
-+ width = gdk_screen_get_width (screen);
-+ height = gdk_screen_get_width (screen);
-+
-+ old_root_pixmap = gdk_pixmap_new (source_pixmap, width, height, -1);
-+
-+ cr = gdk_cairo_create (old_root_pixmap);
-+ gdk_cairo_set_source_pixmap (cr, source_pixmap, 0, 0);
-+ pattern = cairo_get_source (cr);
-+ cairo_pattern_set_extend (pattern, CAIRO_EXTEND_REPEAT);
-+ cairo_paint (cr);
-+
-+ if (cairo_status (cr) != CAIRO_STATUS_SUCCESS) {
-+ g_object_unref (old_root_pixmap);
-+ old_root_pixmap = NULL;
-+ }
-+ cairo_destroy (cr);
-+
-+ g_object_unref (source_pixmap);
-+ }
-+ XFree (data);
-+ }
-+ }
++ display = GDK_DISPLAY_XDISPLAY (gdk_screen_get_display (screen));
result = XGetWindowProperty (
display, RootWindow (display, screen_num),
- gdk_x11_get_xatom_by_name ("ESETROOT_PMAP_ID"),
- 0L, 1L, False, XA_PIXMAP,
- &type, &format, &nitems, &bytes_after,
-- &data_esetroot);
-+ &data);
-
-- if (data_esetroot != NULL) {
-+ if (data!= NULL) {
- if (result == Success && type == XA_PIXMAP &&
- format == 32 &&
- nitems == 1) {
- gdk_error_trap_push ();
-- XKillClient (display, *(Pixmap *)data_esetroot);
-+ XKillClient (display, *(Pixmap *)data);
- gdk_flush ();
- gdk_error_trap_pop ();
- }
-- XFree (data_esetroot);
-+ XFree (data);
- }
-
- pixmap_id = GDK_WINDOW_XWINDOW (pixmap);
-@@ -1071,13 +1156,74 @@ gnome_bg_set_pixmap_as_root (GdkScreen *
+@@ -1070,14 +1175,72 @@ gnome_bg_set_pixmap_as_root (GdkScreen *
+ gdk_x11_get_xatom_by_name ("_XROOTPMAP_ID"), XA_PIXMAP,
32, PropModeReplace,
(guchar *) &pixmap_id, 1);
-
-- XSetWindowBackgroundPixmap (display, RootWindow (display, screen_num),
-- pixmap_id);
-- XClearWindow (display, RootWindow (display, screen_num));
-+ return old_root_pixmap;
+}
+
+/* Set the root pixmap, and properties pointing to it. We
@@ -240,27 +230,28 @@
+{
+ 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),
++ gnome_bg_set_root_pixmap_id (screen, pixmap);
+
+ XSetWindowBackgroundPixmap (display, RootWindow (display, screen_num),
+- pixmap_id);
+ GDK_PIXMAP_XID (pixmap));
-+ XClearWindow (display, RootWindow (display, screen_num));
-+
- XFlush (display);
+ XClearWindow (display, RootWindow (display, screen_num));
+
++ XFlush (display);
+
-+ XUngrabServer (display);
+ XUngrabServer (display);
+}
-+
+
+- XFlush (display);
+GnomeBGCrossfade *
+gnome_bg_set_pixmap_as_root_with_crossfade (GdkScreen *screen,
+ GdkPixmap *pixmap,
@@ -269,7 +260,6 @@
+ GdkDisplay *display;
+ GdkWindow *root_window;
+ GdkPixmap *old_pixmap;
-+ int screen_num;
+ int width, height;
+ GnomeBGCrossfade *fade;
+
@@ -285,8 +275,8 @@
+
+ display = gdk_screen_get_display (screen);
+ gdk_x11_display_grab (display);
-+ old_pixmap = gnome_bg_set_root_pixmap_id (screen, pixmap, TRUE);
-+
++ old_pixmap = gnome_bg_get_pixmap_from_root (screen);
++ gnome_bg_set_root_pixmap_id (screen, pixmap);
+ gnome_bg_crossfade_set_start_pixmap (fade, old_pixmap);
+ gnome_bg_crossfade_set_end_pixmap (fade, pixmap);
+ gdk_display_flush (display);
@@ -298,7 +288,7 @@
}
-@@ -1343,7 +1489,7 @@ on_timeout (gpointer data)
+@@ -1343,7 +1506,7 @@ on_timeout (gpointer data)
bg->timeout_id = 0;
@@ -307,9 +297,9 @@
return FALSE;
}
-diff -up /dev/null gnome-desktop-2.24.0/libgnome-desktop/gnome-bg-crossfade.c
---- /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
+diff -upb /dev/null gnome-desktop-2.24.0/libgnome-desktop/gnome-bg-crossfade.c
+--- /dev/null 2008-10-15 05:19:06.472035468 -0400
++++ gnome-desktop-2.24.0/libgnome-desktop/gnome-bg-crossfade.c 2008-10-15 08:58:43.000000000 -0400
@@ -0,0 +1,432 @@
+/* gnome-bg-crossfade.h - fade window background between two pixmaps
+ *
@@ -488,8 +478,8 @@
+ signals[FINISHED] = g_signal_new ("finished",
+ G_OBJECT_CLASS_TYPE (gobject_class),
+ G_SIGNAL_RUN_LAST, 0, NULL, NULL,
-+ g_cclosure_marshal_VOID__VOID,
-+ G_TYPE_NONE, 0);
++ g_cclosure_marshal_VOID__OBJECT,
++ G_TYPE_NONE, 1, G_TYPE_OBJECT);
+
+ g_type_class_add_private (gobject_class, sizeof (GnomeBGCrossfadePrivate));
+}
@@ -514,7 +504,7 @@
+}
+
+static GdkPixmap *
-+copy_pixmap (GdkPixmap *pixmap,
++tile_pixmap (GdkPixmap *pixmap,
+ int width,
+ int height)
+{
@@ -532,7 +522,6 @@
+ 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]);
+ }
@@ -559,7 +548,7 @@
+ fade->priv->fading_pixmap = NULL;
+ }
+
-+ fade->priv->fading_pixmap = copy_pixmap (pixmap,
++ fade->priv->fading_pixmap = tile_pixmap (pixmap,
+ fade->priv->width,
+ fade->priv->height);
+
@@ -577,7 +566,7 @@
+ fade->priv->end_pixmap = NULL;
+ }
+
-+ fade->priv->end_pixmap = copy_pixmap (pixmap,
++ fade->priv->end_pixmap = tile_pixmap (pixmap,
+ fade->priv->width,
+ fade->priv->height);
+
@@ -627,7 +616,6 @@
+ cairo_status_t status;
+
+ g_return_val_if_fail (GNOME_IS_BG_CROSSFADE (fade), FALSE);
-+
+ now = get_current_time ();
+
+ percent_done = (now - fade->priv->start_time) / .75;
@@ -655,6 +643,7 @@
+ gdk_cairo_set_source_pixmap (cr, fade->priv->end_pixmap,
+ 0.0, 0.0);
+ cairo_paint_with_alpha (cr, percent_done);
++
+ status = cairo_status (cr);
+ cairo_destroy (cr);
+
@@ -695,7 +684,7 @@
+ }
+
+ fade->priv->timeout_id = 0;
-+ g_signal_emit (fade, signals[FINISHED], 0);
++ g_signal_emit (fade, signals[FINISHED], 0, fade->priv->window);
+}
+
+void
@@ -710,8 +699,6 @@
+ g_return_if_fail (fade->priv->end_pixmap != NULL);
+ g_return_if_fail (!gnome_bg_crossfade_is_started (fade));
+
-+ fade->priv->start_time = get_current_time ();
-+
+ source = g_timeout_source_new (1000 / 60.0);
+ g_source_set_callback (source,
+ (GSourceFunc) on_tick,
@@ -724,6 +711,9 @@
+ gdk_window_set_back_pixmap (fade->priv->window,
+ fade->priv->fading_pixmap,
+ FALSE);
++ gdk_window_clear (fade->priv->window);
++ gdk_flush ();
++ fade->priv->start_time = get_current_time ();
+}
+
+gboolean
@@ -743,10 +733,10 @@
+ g_source_remove (fade->priv->timeout_id);
+ }
+}
-diff -up /dev/null gnome-desktop-2.24.0/libgnome-desktop/libgnomeui/gnome-bg-crossfade.h
---- /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 @@
+diff -upb /dev/null gnome-desktop-2.24.0/libgnome-desktop/libgnomeui/gnome-bg-crossfade.h
+--- /dev/null 2008-10-15 05:19:06.472035468 -0400
++++ gnome-desktop-2.24.0/libgnome-desktop/libgnomeui/gnome-bg-crossfade.h 2008-10-15 08:57:26.000000000 -0400
+@@ -0,0 +1,76 @@
+/* gnome-bg-crossfade.h - fade window background between two pixmaps
+
+ Copyright 2008, Red Hat, Inc.
@@ -805,18 +795,15 @@
+{
+ GObjectClass parent_class;
+
-+ void (* finished) (GnomeBGCrossfade *fade);
++ void (* finished) (GnomeBGCrossfade *fade, GdkWindow *window);
+};
+
+GType gnome_bg_crossfade_get_type (void);
+GnomeBGCrossfade *gnome_bg_crossfade_new (int width, int height);
-+gboolean gnome_bg_crossfade_set_start_pixmap (GnomeBGCrossfade *fade,
++gboolean gnome_bg_crossfade_set_start_pixmap (GnomeBGCrossfade *fade,
+ GdkPixmap *pixmap);
-+
-+gboolean gnome_bg_crossfade_set_end_pixmap (GnomeBGCrossfade *fade,
++gboolean gnome_bg_crossfade_set_end_pixmap (GnomeBGCrossfade *fade,
+ GdkPixmap *pixmap);
-+void gnome_bg_crossfade_set_context (GnomeBGCrossfade *fade,
-+ GMainContext *context);
+void gnome_bg_crossfade_start (GnomeBGCrossfade *fade,
+ GdkWindow *window,
+ GMainContext *context);
@@ -826,9 +813,9 @@
+G_END_DECLS
+
+#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
+diff -upb 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-14 15:21:15.000000000 -0400
++++ gnome-desktop-2.24.0/libgnome-desktop/libgnomeui/gnome-bg.h 2008-10-14 17:49:44.000000000 -0400
@@ -33,6 +33,8 @@
#include <gdk/gdk.h>
#include <gconf/gconf-client.h>
@@ -847,19 +834,20 @@
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
+@@ -109,6 +113,10 @@ gboolean gnome_bg_changes_with_s
void gnome_bg_set_pixmap_as_root (GdkScreen *screen,
GdkPixmap *pixmap);
+GnomeBGCrossfade *gnome_bg_set_pixmap_as_root_with_crossfade (GdkScreen *screen,
+ GdkPixmap *pixmap,
+ GMainContext *context);
++GdkPixmap *gnome_bg_get_pixmap_from_root (GdkScreen *screen);
G_END_DECLS
-diff -up gnome-desktop-2.24.0/libgnome-desktop/libgnomeui/Makefile.am.fade gnome-desktop-2.24.0/libgnome-desktop/libgnomeui/Makefile.am
+diff -upb 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-14 15:21:15.000000000 -0400
++++ gnome-desktop-2.24.0/libgnome-desktop/libgnomeui/Makefile.am 2008-10-14 17:49:44.000000000 -0400
@@ -3,6 +3,7 @@ libgnomeui_desktop_HEADERS = \
gnome-ditem-edit.h \
gnome-hint.h \
@@ -868,9 +856,9 @@
gnome-rr.h \
gnome-rr-config.h \
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
+diff -upb 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-14 15:21:15.000000000 -0400
++++ gnome-desktop-2.24.0/libgnome-desktop/Makefile.am 2008-10-14 17:49:44.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.175
retrieving revision 1.176
diff -u -r1.175 -r1.176
--- gnome-desktop.spec 14 Oct 2008 20:07:02 -0000 1.175
+++ gnome-desktop.spec 15 Oct 2008 15:17:25 -0000 1.176
@@ -12,7 +12,7 @@
Summary: Package containing code shared among gnome-panel, gnome-session, nautilus, etc
Name: gnome-desktop
Version: 2.24.0
-Release: 6%{?dist}
+Release: 7%{?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,10 @@
%doc %{_datadir}/gtk-doc/html/gnome-desktop/
%changelog
+* Wed Oct 15 2008 Ray Strode <rstrode at redhat.com> - 2.24.0-7
+- Add new api for getting the root window pixmap
+- Pass start window to crossfade "finished" signal
+
* 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
- Previous message: rpms/blender/devel blender-2.47-scons.patch, NONE, 1.1 blender-2.47.config, NONE, 1.1 blender.spec, 1.85, 1.86 sources, 1.18, 1.19 blender-2.44-scons.patch, 1.1, NONE blender-2.44.config, 1.2, NONE
- Next message: rpms/ghostscript/devel ghostscript.spec,1.175,1.176
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the scm-commits
mailing list