rpms/gnome-desktop/devel gnome-desktop-2.24.0-fade.patch, 1.4, 1.5 gnome-desktop.spec, 1.176, 1.177

Ray Strode rstrode at fedoraproject.org
Mon Oct 20 14:33:08 UTC 2008


Author: rstrode

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

Modified Files:
	gnome-desktop-2.24.0-fade.patch gnome-desktop.spec 
Log Message:
- consoliate window repaint code to one place
- Lengthen duration of animation if getting to the first frame
  takes a long time.


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.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- gnome-desktop-2.24.0-fade.patch	15 Oct 2008 15:17:25 -0000	1.4
+++ gnome-desktop-2.24.0-fade.patch	20 Oct 2008 14:32:38 -0000	1.5
@@ -1,4 +1,4 @@
-diff -upb gnome-desktop-2.24.0/libgnome-desktop/gnome-bg.c.fade gnome-desktop-2.24.0/libgnome-desktop/gnome-bg.c
+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-15 11:12:56.000000000 -0400
 @@ -37,11 +37,15 @@ Author: Soren Sandmann <sandmann at redhat.
@@ -129,8 +129,6 @@
 +	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
@@ -140,6 +138,8 @@
 - */
 -void 
 -gnome_bg_set_pixmap_as_root (GdkScreen *screen, GdkPixmap *pixmap)
++        display = GDK_DISPLAY_XDISPLAY (gdk_screen_get_display (screen));
++
 +	result = XGetWindowProperty (display,
 +		RootWindow (display, screen_num),
 +		gdk_x11_get_xatom_by_name ("_XROOTPMAP_ID"),
@@ -196,23 +196,47 @@
  {
  	int      result;
  	gint     format;
-@@ -1031,15 +1141,10 @@ gnome_bg_set_pixmap_as_root (GdkScreen *
+@@ -1030,24 +1140,19 @@ gnome_bg_set_pixmap_as_root (GdkScreen *
+ 	Atom     type;
  	Display *display;
  	int      screen_num;
- 	
+-	
 -	g_return_if_fail (screen != NULL);
 -	g_return_if_fail (pixmap != NULL);
 -	
++
  	screen_num = gdk_screen_get_number (screen);
 -	
  	data_esetroot = NULL;
--	display = GDK_DISPLAY_XDISPLAY (gdk_screen_get_display (screen));
- 	
++
+ 	display = GDK_DISPLAY_XDISPLAY (gdk_screen_get_display (screen));
+-	
 -	XGrabServer (display);
-+	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);
+-	
++
+ 	if (data_esetroot != NULL) {
+ 		if (result == Success && type == XA_PIXMAP &&
+ 		    format == 32 &&
+@@ -1059,9 +1164,9 @@ gnome_bg_set_pixmap_as_root (GdkScreen *
+ 		}
+ 		XFree (data_esetroot);
+ 	}
+-	
++
+ 	pixmap_id = GDK_WINDOW_XWINDOW (pixmap);
+-	
++
+ 	XChangeProperty (display, RootWindow (display, screen_num),
+ 			 gdk_x11_get_xatom_by_name ("ESETROOT_PMAP_ID"),
+ 			 XA_PIXMAP, 32, PropModeReplace,
 @@ -1070,14 +1175,72 @@ gnome_bg_set_pixmap_as_root (GdkScreen *
  			 gdk_x11_get_xatom_by_name ("_XROOTPMAP_ID"), XA_PIXMAP,
  			 32, PropModeReplace,
@@ -230,7 +254,7 @@
 +{
 +	Display *display;
 +	int      screen_num;
-+	
+ 	
 +	g_return_if_fail (screen != NULL);
 +	g_return_if_fail (pixmap != NULL);
 +	
@@ -240,18 +264,20 @@
 +	XGrabServer (display);
 +
 +	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);
+-	
+-	XUngrabServer (display);
+-	
 +
- 	XUngrabServer (display);
+ 	XFlush (display);
++
++	XUngrabServer (display);
 +}
- 	
--	XFlush (display);
++
 +GnomeBGCrossfade * 
 +gnome_bg_set_pixmap_as_root_with_crossfade (GdkScreen    *screen,
 +                                       GdkPixmap    *pixmap,
@@ -297,10 +323,10 @@
  
  	return FALSE;
  }
-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 @@
+diff -up /dev/null gnome-desktop-2.24.0/libgnome-desktop/gnome-bg-crossfade.c
+--- /dev/null	2008-10-20 05:51:19.470282574 -0400
++++ gnome-desktop-2.24.0/libgnome-desktop/gnome-bg-crossfade.c	2008-10-20 10:28:25.000000000 -0400
+@@ -0,0 +1,452 @@
 +/* gnome-bg-crossfade.h - fade window background between two pixmaps
 + *
 + * Copyright (C) 2008 Red Hat, Inc.
@@ -352,7 +378,9 @@
 +	GdkPixmap	*fading_pixmap;
 +	GdkPixmap	*end_pixmap;
 +	gdouble		 start_time;
++	gdouble		 total_duration;
 +	guint		 timeout_id;
++	guint		 is_first_frame : 1;
 +};
 +
 +enum {
@@ -608,6 +636,21 @@
 +	return !are_enabled;
 +}
 +
++static void
++draw_background (GnomeBGCrossfade *fade)
++{
++	if (GDK_WINDOW_TYPE (fade->priv->window) == GDK_WINDOW_FOREIGN ||
++			GDK_WINDOW_TYPE (fade->priv->window) == GDK_WINDOW_ROOT) {
++		GdkDisplay *display;
++		display = gdk_drawable_get_display (fade->priv->window);
++		gdk_window_clear (fade->priv->window);
++		gdk_flush ();
++	} else {
++		gdk_window_invalidate_rect (fade->priv->window, NULL, FALSE);
++		gdk_window_process_updates (fade->priv->window, FALSE);
++	}
++}
++
 +static gboolean
 +on_tick (GnomeBGCrossfade *fade)
 +{
@@ -616,12 +659,22 @@
 +	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;
++	now = get_current_time ();
 +
++	percent_done = (now - fade->priv->start_time) / fade->priv->total_duration;
 +	percent_done = CLAMP (percent_done, 0.0, 1.0);
 +
++	/* If it's taking a long time to get to the first frame,
++	 * then lengthen the duration, so the user will get to see
++	 * the effect.
++	 */
++	if (fade->priv->is_first_frame && percent_done > .33) {
++		fade->priv->is_first_frame = FALSE;
++		fade->priv->total_duration *= 1.5;
++		return on_tick (fade);
++	}
++
 +	if (fade->priv->fading_pixmap == NULL) {
 +		return FALSE;
 +	}
@@ -648,16 +701,8 @@
 +	cairo_destroy (cr);
 +
 +	if (status == CAIRO_STATUS_SUCCESS) {
-+		if (GDK_WINDOW_TYPE (fade->priv->window) == GDK_WINDOW_FOREIGN ||
-+		    GDK_WINDOW_TYPE (fade->priv->window) == GDK_WINDOW_ROOT) {
-+			GdkDisplay *display;
-+			display = gdk_drawable_get_display (fade->priv->window);
-+			gdk_window_clear (fade->priv->window);
-+			gdk_display_flush (display);
-+		} else {
-+        		gdk_window_invalidate_rect (fade->priv->window, NULL, FALSE);
-+		}
-+        }
++		draw_background (fade);
++	}
 +	return percent_done <= .99;
 +}
 +
@@ -665,12 +710,10 @@
 +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);
-+		display = gdk_drawable_get_display (fade->priv->window);
-+		gdk_display_sync (display);
++		draw_background (fade);
 +	}
 +
 +	if (fade->priv->fading_pixmap != NULL) {
@@ -711,8 +754,11 @@
 +	gdk_window_set_back_pixmap (fade->priv->window,
 +				    fade->priv->fading_pixmap,
 +				    FALSE);
-+        gdk_window_clear (fade->priv->window);
-+        gdk_flush ();
++	gdk_window_clear (fade->priv->window);
++	gdk_flush ();
++
++	fade->priv->is_first_frame = TRUE;
++	fade->priv->total_duration = .75;
 +	fade->priv->start_time = get_current_time ();
 +}
 +
@@ -733,8 +779,8 @@
 +		g_source_remove (fade->priv->timeout_id);
 +	}
 +}
-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
+diff -up /dev/null gnome-desktop-2.24.0/libgnome-desktop/libgnomeui/gnome-bg-crossfade.h
+--- /dev/null	2008-10-20 05:51:19.470282574 -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
@@ -813,7 +859,7 @@
 +G_END_DECLS
 +
 +#endif
-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
+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-14 17:49:44.000000000 -0400
 @@ -33,6 +33,8 @@
@@ -845,7 +891,7 @@
  
  G_END_DECLS
  
-diff -upb gnome-desktop-2.24.0/libgnome-desktop/libgnomeui/Makefile.am.fade gnome-desktop-2.24.0/libgnome-desktop/libgnomeui/Makefile.am
+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-14 17:49:44.000000000 -0400
 @@ -3,6 +3,7 @@ libgnomeui_desktop_HEADERS =	\
@@ -856,7 +902,7 @@
  	gnome-rr.h		\
  	gnome-rr-config.h	\
  	gnome-rr-labeler.h
-diff -upb gnome-desktop-2.24.0/libgnome-desktop/Makefile.am.fade gnome-desktop-2.24.0/libgnome-desktop/Makefile.am
+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-14 17:49:44.000000000 -0400
 @@ -21,6 +21,7 @@ libgnome_desktop_2_la_SOURCES = \


Index: gnome-desktop.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gnome-desktop/devel/gnome-desktop.spec,v
retrieving revision 1.176
retrieving revision 1.177
diff -u -r1.176 -r1.177
--- gnome-desktop.spec	15 Oct 2008 15:17:25 -0000	1.176
+++ gnome-desktop.spec	20 Oct 2008 14:32:38 -0000	1.177
@@ -12,7 +12,7 @@
 Summary: Package containing code shared among gnome-panel, gnome-session, nautilus, etc
 Name: gnome-desktop
 Version: 2.24.0
-Release: 7%{?dist}
+Release: 8%{?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
+* Mon Oct 20 2008 Ray Strode <rstrode at redhat.com> - 2.24.0-8
+- consoliate window repaint code to one place
+- Lengthen duration of animation if getting to the first frame
+  takes a long time.
+
 * 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




More information about the fedora-extras-commits mailing list