107
105
FadeWindow::addDisplayModal ()
109
if (!(window->state () & CompWindowStateDisplayModalMask))
107
if (!(window->state () & CompWindowStateDisplayModalMask) ||
117
fScreen->displayModals++;
113
++fScreen->displayModals;
118
115
if (fScreen->displayModals == 1)
119
116
fScreen->cScreen->damageScreen ();
171
FadeWindow::glPaint (const GLWindowPaintAttrib& attrib,
172
const GLMatrix& transform,
173
const CompRegion& region,
168
FadeWindow::glPaint (const GLWindowPaintAttrib &attrib,
169
const GLMatrix &transform,
170
const CompRegion ®ion,
176
173
if (!GL::canDoSlightlySaturated)
177
174
saturation = attrib.saturation;
181
178
brightness == attrib.brightness &&
182
179
saturation == attrib.saturation &&
183
180
!fScreen->displayModals)
185
181
return gWindow->glPaint (attrib, transform, region, mask);
188
183
GLWindowPaintAttrib fAttrib (attrib);
191
mode = fScreen->optionGetFadeMode ();
185
int mode = fScreen->optionGetFadeMode ();
193
187
if (!window->alive () &&
194
188
fScreen->optionGetDimUnresponsive ())
190
GLuint value = fScreen->optionGetUnresponsiveBrightness ();
198
value = fScreen->optionGetUnresponsiveBrightness ();
199
192
if (value != 100)
200
193
fAttrib.brightness = fAttrib.brightness * value / 100;
202
value = fScreen->optionGetUnresponsiveSaturation ();
195
value = fScreen->optionGetUnresponsiveSaturation ();
203
197
if (value != 100 && GL::canDoSlightlySaturated)
204
198
fAttrib.saturation = fAttrib.saturation * value / 100;
209
203
fAttrib.saturation = 0;
212
if (mode == FadeOptions::FadeModeConstantTime)
206
if (mode == FadeOptions::FadeModeConstantTime &&
207
(fAttrib.opacity != targetOpacity ||
208
fAttrib.brightness != targetBrightness ||
209
fAttrib.saturation != targetSaturation))
214
if (fAttrib.opacity != targetOpacity ||
215
fAttrib.brightness != targetBrightness ||
216
fAttrib.saturation != targetSaturation)
218
fadeTime = fScreen->optionGetFadeTime ();
221
opacityDiff = fAttrib.opacity - opacity;
222
brightnessDiff = fAttrib.brightness - brightness;
223
saturationDiff = fAttrib.saturation - saturation;
225
targetOpacity = fAttrib.opacity;
226
targetBrightness = fAttrib.brightness;
227
targetSaturation = fAttrib.saturation;
211
fadeTime = fScreen->optionGetFadeTime ();
214
opacityDiff = fAttrib.opacity - opacity;
215
brightnessDiff = fAttrib.brightness - brightness;
216
saturationDiff = fAttrib.saturation - saturation;
218
targetOpacity = fAttrib.opacity;
219
targetBrightness = fAttrib.brightness;
220
targetSaturation = fAttrib.saturation;
233
GLint newOpacity = OPAQUE;
225
GLint newOpacity = OPAQUE;
234
226
GLint newBrightness = BRIGHT;
235
227
GLint newSaturation = COLOR;
237
229
if (mode == FadeOptions::FadeModeConstantSpeed)
239
231
newOpacity = opacity;
240
233
if (fAttrib.opacity > opacity)
241
234
newOpacity = MIN (opacity + steps, fAttrib.opacity);
242
235
else if (fAttrib.opacity < opacity)
243
236
newOpacity = MAX (opacity - steps, fAttrib.opacity);
245
238
newBrightness = brightness;
246
240
if (fAttrib.brightness > brightness)
247
newBrightness = MIN (brightness + (steps / 12),
241
newBrightness = MIN (brightness + (steps / 12), fAttrib.brightness);
249
242
else if (fAttrib.brightness < brightness)
250
newBrightness = MAX (brightness - (steps / 12),
243
newBrightness = MAX (brightness - (steps / 12), fAttrib.brightness);
253
245
newSaturation = saturation;
254
247
if (fAttrib.saturation > saturation)
255
newSaturation = MIN (saturation + (steps / 6),
248
newSaturation = MIN (saturation + (steps / 6), fAttrib.saturation);
257
249
else if (fAttrib.saturation < saturation)
258
newSaturation = MAX (saturation - (steps / 6),
250
newSaturation = MAX (saturation - (steps / 6), fAttrib.saturation);
261
252
else if (mode == FadeOptions::FadeModeConstantTime)
265
256
if (totalFadeTime == 0)
266
257
totalFadeTime = fadeTime;
268
newOpacity = fAttrib.opacity -
269
(opacityDiff * fadeTime / totalFadeTime);
259
newOpacity = fAttrib.opacity -
260
(opacityDiff * fadeTime / totalFadeTime);
270
261
newBrightness = fAttrib.brightness -
271
(brightnessDiff * fadeTime / totalFadeTime);
262
(brightnessDiff * fadeTime / totalFadeTime);
272
263
newSaturation = fAttrib.saturation -
273
(saturationDiff * fadeTime / totalFadeTime);
264
(saturationDiff * fadeTime / totalFadeTime);
325
312
if (!rv || !CompOption::findOption (getOptions (), name, &index))
329
317
case FadeOptions::FadeSpeed:
330
fadeTime = 1000.0f / optionGetFadeSpeed ();
318
fadeTime = 1000.0f / optionGetFadeSpeed ();
332
321
case FadeOptions::WindowMatch:
333
322
cScreen->damageScreen ();
335
325
case FadeOptions::DimUnresponsive:
336
326
foreach (CompWindow *w, screen->windows ())
337
327
w->windowNotifySetEnabled (FadeWindow::get (w), optionGetDimUnresponsive ());
346
338
FadeWindow::FadeWindow (CompWindow *w) :
347
339
PluginClassHandler<FadeWindow, CompWindow> (w),
348
fScreen (FadeScreen::get (screen)),
350
cWindow (CompositeWindow::get (w)),
351
gWindow (GLWindow::get (w)),
352
opacity (cWindow->opacity ()),
353
brightness (cWindow->brightness ()),
354
saturation (cWindow->saturation ()),
355
targetOpacity (opacity),
340
fScreen (FadeScreen::get (screen)),
342
cWindow (CompositeWindow::get (w)),
343
gWindow (GLWindow::get (w)),
344
opacity (cWindow->opacity ()),
345
brightness (cWindow->brightness ()),
346
saturation (cWindow->saturation ()),
347
targetOpacity (opacity),
356
348
targetBrightness (brightness),
357
349
targetSaturation (saturation),
365
357
if (window->isViewable ())
366
358
addDisplayModal ();