Commit graph

10 commits

Author SHA1 Message Date
Martin Gräßlin
451bbb54dd [effects] Handle windowShown and windowHidden in fade effect
Summary:
For Wayland windows we can have a sequence of window unmapped
(windowHidden signal) followed by a windowClosed way later when the
application quits. This is for example the case with menus.

The result of this was that the fade out animation triggered when the
application quit showing all the already closed menus again.

This change implements a windowShown and windowHidden handler and
triggers the fadeIn/Out animation on it. If the window gets shown
again the existing fadeOut animation gets cancelled, so that it can run
again.

If a window gets closed for which a fade out animation has been run
already, it's not triggered again, thus ensuring that we don't see
zombie windows.

CCBUG: 372622

Reviewers: #kwin, #plasma_on_wayland, hein

Subscribers: plasma-devel, kwin

Tags: #plasma_on_wayland, #kwin

Differential Revision: https://phabricator.kde.org/D3419
2016-11-22 07:18:27 +01:00
Martin Gräßlin
fb69b791a1 Ensure that all Effects honour the grab roles correctly
Summary:
When windows get added some effects grab the window and want to be the
only one animating this window. For this the grab roles exists. An
effect being notified later on evaluates the grab state and does not
start the animation.

This process failed due to being dependent on the order the effects are
loaded. Window Added/Closed are signals emitted by EffectsHandler, thus
first come, first serve. The requested effect order does not play into
it.

Due to that it could happen that an Effect which should not animate,
started to animate as the grab was still there.

This change adds the possibility to be notified whenever the window data
changes. A new signal is added to EffectsHandler which is emitted
whenever the windowData changes. The interested effects connect to it
and cancel their (just started) animation for the window.

Adjusted effects are:
* ScaleIn
* Fade
* WobblyWindows

In case of WobblyWindows an additional logical error was fixed that the
animations were only run when an effect grabbed instead of the other way
around.

BUG: 336866
FIXED-IN: 5.8.4

Reviewers: #kwin, #plasma, broulik

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D3211
2016-11-07 11:45:09 +01:00
Marco Martin
ad7e1f6260 don't do fadeout on ksplashqml 2014-04-23 13:24:37 +02:00
Thomas Lübking
11f5f0298d workaround bug #321897 by multiplying fadeout time
with 4 instead of just altering the default value
It seems the value is actually written for some ppl.

Worse: former patch didn't actually work as expected
anymore

CCBUG: 321897
2013-09-26 19:43:10 +02:00
Thomas Lübking
05bc5bfc0b extend fadeout animation duration to 600ms
compensated by a QuartOut shape, this keeps the
effect alive while the sheet or similar effects run
without much visual stretch

Covers issue until there's AnimationEffect::determine()

CCBUG: 321897
semi Fixed in 4.11.2
REVIEW: 111798
2013-09-24 21:31:07 +02:00
Martin Gräßlin
fb65e080dc Pass property minimized from Client to Deleted
Ensures that we can access the minimized property in Effects
which want to not animate a closed, minimized window.

Make use of it in the Fade Effect Script to not fade out a
minimized window which would mean showing the actual not
visible window.

BUG: 303891
FIXED-IN: 4.9.0
REVIEW: 105647
2012-07-22 10:06:30 +02:00
Thomas Lübking
34ba9411c9 use proper onCurrentDesktop instead of isOnCurrentDesktop
BUG: 302784
FIXED-IN: 4.9
REVIEW: 105394
2012-07-05 19:43:46 +02:00
Thomas Lübking
3ef69476e7 don't fade/out in windows on other desktops
BUG: 302101
FIXED-IN: 4.9
REVIEW: 105297
2012-06-18 22:12:04 +02:00
Martin Gräßlin
7c00ab45f7 Add default values to Fade Effect
Without default values readConfig returns undefined values
causing the effect not to work. This needs to be documented.
2012-04-09 11:26:51 +02:00
Martin Gräßlin
f8c0616574 Fade effect goes JavaScript
Our first effect written in JavaScript to replace an existing C++
effect. Fade effect has been chosen as it has shown to be problematic
in the past and would have needed a migration to AnimationEffect anyway.
2012-03-12 21:37:42 +01:00