|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
commit 1edd5817ac177e4f73ff8578746510abd3541390
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
Author: Michel Dänzer <daenzer@debian.org>
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
Date: Wed Aug 12 17:52:07 2009 -0400
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
Fix gamma fadeout when X reports 0-size gamma ramp (#581995)
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
diff --git a/src/gs-fade.c b/src/gs-fade.c
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
index f591ab8..75595a7 100644
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
--- a/src/gs-fade.c
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
+++ b/src/gs-fade.c
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
@@ -308,32 +308,15 @@ gamma_info_init (GSFade *fade)
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
*/
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
for (screen = 0; screen < fade->priv->num_screens; screen++) {
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
- if (FADE_TYPE_GAMMA_NUMBER == fade->priv->fade_type) {
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
- /* only have gamma parameter, not ramps. */
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
-
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
- res = XF86VidModeGetGamma (GDK_DISPLAY (), screen, &info [screen].vmg);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
- if (! res) {
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
- goto FAIL;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
- }
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
- gs_debug ("Initialized gamma fade for screen %d: %f %f %f",
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
- screen,
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
- info [screen].vmg.red,
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
- info [screen].vmg.green,
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
- info [screen].vmg.blue);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
- }
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
-
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
# ifdef HAVE_XF86VMODE_GAMMA_RAMP
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
- else if (FADE_TYPE_GAMMA_RAMP == fade->priv->fade_type) {
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
+ if (FADE_TYPE_GAMMA_RAMP == fade->priv->fade_type) {
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
/* have ramps */
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
res = XF86VidModeGetGammaRampSize (GDK_DISPLAY (), screen, &info [screen].size);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
- if (! res) {
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
- goto FAIL;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
- }
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
-
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
- if (info [screen].size <= 0) {
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
- goto FAIL;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
+ if (! res || info [screen].size <= 0) {
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
+ fade->priv->fade_type = FADE_TYPE_GAMMA_NUMBER;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
+ goto test_number;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
}
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
info [screen].r = g_new0 (unsigned short, info[screen].size);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
@@ -341,7 +324,8 @@ gamma_info_init (GSFade *fade)
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
info [screen].b = g_new0 (unsigned short, info[screen].size);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
if (! (info [screen].r && info [screen].g && info [screen].b)) {
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
- goto FAIL;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
+ fade->priv->fade_type = FADE_TYPE_GAMMA_NUMBER;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
+ goto test_number;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
}
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
res = XF86VidModeGetGammaRamp (GDK_DISPLAY (),
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
@@ -351,15 +335,32 @@ gamma_info_init (GSFade *fade)
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
info [screen].g,
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
info [screen].b);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
if (! res) {
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
- goto FAIL;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
+ fade->priv->fade_type = FADE_TYPE_GAMMA_NUMBER;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
+ goto test_number;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
}
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
gs_debug ("Initialized gamma ramp fade");
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
}
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
# endif /* HAVE_XF86VMODE_GAMMA_RAMP */
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
- else if (FADE_TYPE_NONE == fade->priv->fade_type) {
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
+
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
+ test_number:
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
+ if (FADE_TYPE_GAMMA_NUMBER == fade->priv->fade_type) {
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
+ /* only have gamma parameter, not ramps. */
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
+
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
+ res = XF86VidModeGetGamma (GDK_DISPLAY (), screen, &info [screen].vmg);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
+ if (! res) {
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
+ fade->priv->fade_type = FADE_TYPE_NONE;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
+ goto test_none;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
+ gs_debug ("Initialized gamma fade for screen %d: %f %f %f",
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
+ screen,
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
+ info [screen].vmg.red,
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
+ info [screen].vmg.green,
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
+ info [screen].vmg.blue);
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
+
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
+ test_none:
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
+ if (FADE_TYPE_NONE == fade->priv->fade_type) {
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
goto FAIL;
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
- } else {
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
- g_assert_not_reached ();
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
}
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
}
|
|
![](https://seccdn.libravatar.org/avatar/4a0fc9d2dfbe9dc214f4e8cfd3e4f5ab3d62796420bb9b7e99de30089fccdcac?s=16&d=retro) |
65d1273 |
|