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