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 compiz@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/compiz