I've added a new option in minimize plugin, called "Disable Fading".
To prevent tearing, damageScreen is used minDonePaintScreen (only if the
option is used).
The patch is attached.
--- minimize_orig.c 2007-01-27 08:30:23.000000000 +0100
+++ minimize.c 2007-01-28 17:21:23.000000000 +0100
@@ -45,6 +45,8 @@
#define MIN_SHADE_RESISTANCE_MIN 0
#define MIN_SHADE_RESISTANCE_MAX 100
+#define MIN_DISABLE_FADING_DEFAULT FALSE
+
static char *winType[] = {
N_("Toolbar"),
N_("Utility"),
@@ -66,7 +68,8 @@
#define MIN_SCREEN_OPTION_TIMESTEP 1
#define MIN_SCREEN_OPTION_WINDOW_TYPE 2
#define MIN_SCREEN_OPTION_SHADE_RESISTANCE 3
-#define MIN_SCREEN_OPTION_NUM 4
+#define MIN_SCREEN_OPTION_DISABLE_FADING 4
+#define MIN_SCREEN_OPTION_NUM 5
typedef struct _MinScreen {
int windowPrivateIndex;
@@ -185,6 +188,10 @@
return TRUE;
}
+ break;
+ case MIN_SCREEN_OPTION_DISABLE_FADING:
+ if (compSetBoolOption (o, value))
+ return TRUE;
default:
break;
}
@@ -242,6 +249,13 @@
o->value.i = MIN_SHADE_RESISTANCE_DEFAULT;
o->rest.i.min = MIN_SHADE_RESISTANCE_MIN;
o->rest.i.max = MIN_SHADE_RESISTANCE_MAX;
+
+ o = &ms->opt[MIN_SCREEN_OPTION_DISABLE_FADING];
+ o->name = "disable_fading";
+ o->shortDesc = N_("Disable Fading");
+ o->longDesc = N_("Disable fading when minimizing");
+ o->type = CompOptionTypeBool;
+ o->value.b = MIN_DISABLE_FADING_DEFAULT;
}
static void
@@ -585,6 +599,9 @@
UNWRAP (ms, s, donePaintScreen);
(*s->donePaintScreen) (s);
WRAP (ms, s, donePaintScreen, minDonePaintScreen);
+
+ if (ms->opt[MIN_SCREEN_OPTION_DISABLE_FADING].value.b)
+ damageScreen(s);
}
static Bool
@@ -644,9 +661,11 @@
glPushMatrix ();
glLoadMatrixf (wTransform.m);
+ if (ms->opt[MIN_SCREEN_OPTION_DISABLE_FADING].value.b)
+ fragment.opacity = OPAQUE;
+
(*s->drawWindow) (w, &wTransform, &fragment, region,
mask | PAINT_WINDOW_TRANSFORMED_MASK);
-
glPopMatrix ();
}
else
_______________________________________________
compiz mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/compiz