rpms/eel2/devel eel-2.23.92-fade.patch, 1.2, 1.3 eel2.spec, 1.101, 1.102
Ray Strode
rstrode at fedoraproject.org
Wed Oct 1 17:00:10 UTC 2008
Author: rstrode
Update of /cvs/pkgs/rpms/eel2/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv27511
Modified Files:
eel-2.23.92-fade.patch eel2.spec
Log Message:
- When a crossfade is in progress and another is requested,
don't cancel the first but instead just change the
pixmap that's getting faded to. Might help with a flicker
problem Matthias is encountering
eel-2.23.92-fade.patch:
Index: eel-2.23.92-fade.patch
===================================================================
RCS file: /cvs/pkgs/rpms/eel2/devel/eel-2.23.92-fade.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- eel-2.23.92-fade.patch 22 Sep 2008 14:35:26 -0000 1.2
+++ eel-2.23.92-fade.patch 1 Oct 2008 16:59:39 -0000 1.3
@@ -1,6 +1,6 @@
diff -up eel-2.23.92/eel/eel-background.c.fade eel-2.23.92/eel/eel-background.c
--- eel-2.23.92/eel/eel-background.c.fade 2008-09-08 17:26:14.000000000 -0400
-+++ eel-2.23.92/eel/eel-background.c 2008-09-22 10:27:36.000000000 -0400
++++ eel-2.23.92/eel/eel-background.c 2008-10-01 12:42:41.000000000 -0400
@@ -43,6 +43,9 @@
#include <stdio.h>
#define GNOME_DESKTOP_USE_UNSTABLE_API
@@ -31,7 +31,7 @@
eel_background_remove_current_image (background);
if (background->details->background_pixmap != NULL) {
-@@ -610,6 +619,25 @@ eel_background_reset (EelBackground *bac
+@@ -610,6 +619,26 @@ eel_background_reset (EelBackground *bac
g_signal_emit (GTK_OBJECT (background), signals[RESET], 0);
}
@@ -49,7 +49,8 @@
+ return FALSE;
+ }
+
-+ gnome_bg_crossfade_start (background->details->fade, window, NULL);
++ if (!gnome_bg_crossfade_is_started (background->details->fade))
++ gnome_bg_crossfade_start (background->details->fade, window, NULL);
+
+ return gnome_bg_crossfade_is_started (background->details->fade);
+}
@@ -57,7 +58,7 @@
static void
eel_background_set_up_widget (EelBackground *background, GtkWidget *widget)
{
-@@ -644,14 +672,15 @@ eel_background_set_up_widget (EelBackgro
+@@ -644,14 +673,15 @@ eel_background_set_up_widget (EelBackgro
} else {
window = widget->window;
}
@@ -80,31 +81,24 @@
background->details->background_changes_with_size =
gnome_bg_changes_with_size (background->details->bg);
-@@ -679,6 +708,18 @@ eel_background_set_up_widget (EelBackgro
+@@ -679,6 +709,16 @@ eel_background_set_up_widget (EelBackgro
static void
eel_widget_background_changed (GtkWidget *widget, EelBackground *background)
{
+ if (GTK_WIDGET_REALIZED (widget)) {
-+ int width, height;
-+
-+ if (background->details->fade != NULL) {
-+ gnome_bg_crossfade_stop (background->details->fade);
-+ g_object_unref (background->details->fade);
++ if (background->details->fade == NULL) {
++ int width, height;
++ gdk_drawable_get_size (widget->window, &width, &height);
++ background->details->fade = gnome_bg_crossfade_new (width, height);
++ gnome_bg_crossfade_set_start_pixmap (background->details->fade,
++ background->details->background_pixmap);
+ }
-+ gdk_drawable_get_size (widget->window, &width, &height);
-+ background->details->fade = gnome_bg_crossfade_new (width, height);
-+ gnome_bg_crossfade_set_start_pixmap (background->details->fade, background->details->background_pixmap);
+ }
+
eel_background_unrealize (background);
eel_background_set_up_widget (background, widget);
-@@ -741,11 +782,55 @@ static void
- widget_realize_cb (GtkWidget *widget, gpointer data)
- {
- EelBackground *background;
-+ int width, height;
-
+@@ -745,7 +785,13 @@ widget_realize_cb (GtkWidget *widget, gp
background = EEL_BACKGROUND (data);
widget_realized_setup (widget, data);
@@ -113,44 +107,7 @@
+ if (background->details->fade != NULL) {
+ gnome_bg_crossfade_stop (background->details->fade);
+ g_object_unref (background->details->fade);
-+ }
-+
-+ gdk_drawable_get_size (widget->window, &width, &height);
-+ background->details->fade = gnome_bg_crossfade_new (width, height);
-+
-+ if (background->details->is_desktop) {
-+ GdkWindow *root_window;
-+ GdkScreen *screen;
-+ GdkPixmap *pixmap;
-+ cairo_surface_t *surface;
-+ int x, y;
-+ cairo_pattern_t *pattern;
-+ cairo_t *cr;
-+
-+ screen = gtk_widget_get_screen (widget);
-+
-+ root_window = gdk_screen_get_root_window (screen);
-+ gdk_window_get_position (widget->window, &x, &y);
-+
-+ pixmap = gdk_pixmap_new (widget->window, width, height, -1);
-+
-+ cr = gdk_cairo_create (pixmap);
-+
-+ surface = cairo_xlib_surface_create (GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (widget)),
-+ GDK_WINDOW_XWINDOW (root_window),
-+ GDK_VISUAL_XVISUAL (gdk_drawable_get_visual (pixmap)),
-+ gdk_screen_get_width (screen),
-+ gdk_screen_get_height (screen));
-+ cairo_set_source_surface (cr, surface, x, y);
-+ cairo_paint (cr);
-+
-+ cairo_surface_destroy (surface);
-+ cairo_destroy (cr);
-+
-+ gnome_bg_crossfade_set_start_pixmap (background->details->fade, pixmap);
-+ g_object_unref (pixmap);
-+ } else {
-+ gnome_bg_crossfade_set_start_pixmap (background->details->fade, NULL);
++ background->details->fade = NULL;
+ }
+
eel_background_set_up_widget (background, widget);
Index: eel2.spec
===================================================================
RCS file: /cvs/pkgs/rpms/eel2/devel/eel2.spec,v
retrieving revision 1.101
retrieving revision 1.102
diff -u -r1.101 -r1.102
--- eel2.spec 22 Sep 2008 14:35:26 -0000 1.101
+++ eel2.spec 1 Oct 2008 16:59:39 -0000 1.102
@@ -17,7 +17,7 @@
Name: eel2
Summary: Eazel Extensions Library
Version: 2.24.0
-Release: 2%{?dist}
+Release: 3%{?dist}
License: LGPLv2+
Group: System Environment/Libraries
Source: http://download.gnome.org/sources/eel/2.24/eel-%{version}.tar.bz2
@@ -113,6 +113,12 @@
%{_includedir}/eel-2
%changelog
+* Wed Oct 1 2008 Ray Strode <rstrode at redhat.com> - 2.24.0-3
+- When a crossfade is in progress and another is requested,
+ don't cancel the first but instead just change the
+ pixmap that's getting faded to. Might help with a flicker
+ problem Matthias is encountering
+
* Mon Sep 22 2008 Ray Strode <rstrode at redhat.com> - 2.24.0-2
- Don't fade desktop from themed gray color at startup
More information about the scm-commits
mailing list