summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMart Raudsepp <leio@gentoo.org>2008-02-21 14:04:26 +0000
committerMart Raudsepp <leio@gentoo.org>2008-02-21 14:04:26 +0000
commitc3406599b48224a04d2c2a3dda4d7bb9bb4a9430 (patch)
tree6d2ea1fbc22cc744c721f5410797916881164c44 /gnome-extra/gnome-screensaver/files
parentalpha/ia64/sparc/x86 stable (diff)
downloadgentoo-2-c3406599b48224a04d2c2a3dda4d7bb9bb4a9430.tar.gz
gentoo-2-c3406599b48224a04d2c2a3dda4d7bb9bb4a9430.tar.bz2
gentoo-2-c3406599b48224a04d2c2a3dda4d7bb9bb4a9430.zip
Improve gamma restoring, bug 201019. Thanks to Pacho Ramos
(Portage version: 2.1.4.4)
Diffstat (limited to 'gnome-extra/gnome-screensaver/files')
-rw-r--r--gnome-extra/gnome-screensaver/files/gnome-screensaver-2.20.0-fix-gamma.patch60
1 files changed, 60 insertions, 0 deletions
diff --git a/gnome-extra/gnome-screensaver/files/gnome-screensaver-2.20.0-fix-gamma.patch b/gnome-extra/gnome-screensaver/files/gnome-screensaver-2.20.0-fix-gamma.patch
new file mode 100644
index 000000000000..3afe0cb80f91
--- /dev/null
+++ b/gnome-extra/gnome-screensaver/files/gnome-screensaver-2.20.0-fix-gamma.patch
@@ -0,0 +1,60 @@
+http://bugzilla.gnome.org/show_bug.cgi?id=342850
+http://bugs.gentoo.org/show_bug.cgi?id=201019
+
+Index: src/gs-fade.c
+===================================================================
+--- src/gs-fade.c (revision 1322)
++++ src/gs-fade.c (working copy)
+@@ -296,6 +296,10 @@
+ }
+ # endif
+
++ if (fade->priv->gamma_info) {
++ return TRUE;
++ }
++
+ info = g_new0 (xf86_gamma_info, fade->priv->num_screens);
+ fade->priv->gamma_info = info;
+
+@@ -402,8 +406,10 @@
+ int screen;
+ gboolean res;
+
+- for (screen = 0; screen < fade->priv->num_screens; screen++) {
+- res = xf86_whack_gamma (screen, &fade->priv->gamma_info [screen], alpha);
++ if (fade->priv->gamma_info) {
++ for (screen = 0; screen < fade->priv->num_screens; screen++) {
++ res = xf86_whack_gamma (screen, &fade->priv->gamma_info [screen], alpha);
++ }
+ }
+
+ return TRUE;
+@@ -523,6 +529,8 @@
+
+ g_return_if_fail (GS_IS_FADE (fade));
+
++ gamma_info_init (fade);
++
+ if (fade->priv->timer_id > 0) {
+ gs_fade_stop (fade);
+ }
+@@ -641,6 +649,8 @@
+ fade->priv->current_alpha = 1.0;
+
+ gs_fade_set_alpha (fade, fade->priv->current_alpha);
++
++ gamma_info_free (fade);
+ }
+
+ static void
+@@ -681,7 +691,9 @@
+ display = gdk_display_get_default ();
+ fade->priv->num_screens = gdk_display_get_n_screens (display);
+
+- gamma_info_init (fade);
++#ifdef HAVE_XF86VMODE_GAMMA
++ fade->priv->gamma_info = NULL;
++#endif
+ }
+
+ static void