Bug 306262

Summary: Translucency Effect needs isActive() implementation
Product: [Plasma] kwin Reporter: Martin Flöser <mgraesslin>
Component: effects-variousAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED FIXED    
Severity: normal Flags: mgraesslin: ReviewRequest+
Priority: NOR    
Version: 4.9.1   
Target Milestone: 4.9.2   
Platform: unspecified   
OS: Linux   
URL: https://git.reviewboard.kde.org/r/106335/
Latest Commit: Version Fixed In: 4.9.2

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