Bug 306262 - Translucency Effect needs isActive() implementation
Summary: Translucency Effect needs isActive() implementation
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: effects-various (show other bugs)
Version: 4.9.1
Platform: unspecified Linux
: NOR normal
Target Milestone: 4.9.2
Assignee: KWin default assignee
URL: https://git.reviewboard.kde.org/r/106...
Keywords:
Depends on:
Blocks:
 
Reported: 2012-09-04 18:58 UTC by Martin Flöser
Modified: 2012-09-07 05:40 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In: 4.9.2
mgraesslin: ReviewRequest+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Flöser 2012-09-04 18:58:02 UTC
The Translucency Effect does not yet implement the isActive() method, but with default settings the effect is mostly inactive.

The effect itself is not really cheap as it does many checks for the window type and that for each window in each frame.
Comment 1 Thomas Lübking 2012-09-04 19:40:46 UTC
I wanted to rebase it to an animation effect class anyway for it's considerably broken and just to get the bug for colliding state changes half-wise out i needed to hack around a lot.

One could also consider to make it a scripted effect for 4.10 (requires to reimplement the animationEnded function in the ScriptedEffect)

Dim inactive windows falls into the same category and shares similar bugs.
Comment 2 Martin Flöser 2012-09-04 19:43:56 UTC
yes sounds reasonable, for 4.9 branch I have already a patch (which discovered #306263 - clearly a schrödinbug)
Comment 3 Martin Flöser 2012-09-07 05:40:21 UTC
Git commit a88457250ef4e13b4934b6dca1632d67c41d8b05 by Martin Gräßlin.
Committed on 04/09/2012 at 21:02.
Pushed by graesslin into branch 'KDE/4.9'.

Translucency Effect supports isActive hook

The effect gets a set of boolean values to check whether it is active for
one of the categories (e.g. move resize, decorations).

This allows to easily check whether the effect is active at all, that is
if all values are at 1.0 the effect will never affect a window.

In all other cases it can be combined with looking at the available
windows to e.g. enable the effect for move resize only when there is a
window which is either moved or resized. This check is performed whenever
an action happens which could cause a window to become inactive.
FIXED-IN: 4.9.2

M  +95   -1    kwin/effects/translucency/translucency.cpp
M  +12   -0    kwin/effects/translucency/translucency.h

http://commits.kde.org/kde-workspace/a88457250ef4e13b4934b6dca1632d67c41d8b05