kwin/effects/diminactive
Vlad Zagorodniy 396f8f558c [effects/diminactive] Delete active transitions when window is deleted
Summary:
The Dim Inactive effect expects that the windowClosed signal always
proceeds the windowDeleted signal. But in some cases that's not the case.

If a window gets destroyed before becoming ready for painting, only
the windowDeleted signal will be emitted. In addition to that, KWin will
activate that window, which means we'll probably start a transition for
it.

Because this effect cannot terminate active transitions for such
windows, KWin can crash in postPaintScreen.

This change addresses the crash in postPaintScreen by adding extra clean
up stuff in the windowDeleted slot to make sure that there are no
transitions for deleted windows.

The proper fix would be to not emit windowActivated signal for windows
that are not ready for painting.

BUG: 399612
FIXED-IN: 5.14.1

Test Plan:
Ran
```
x <- seq(5, 15, length=1000)
y <- dnorm(x, mean=10, sd=3)
plot(x, y, type="l", lwd=1)
```
in RKWard multiple times.

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D16130
2018-10-11 17:48:37 +03:00
..
CMakeLists.txt Use SERVICE_TYPES parameter to kcoreaddons_desktop_to_json() 2015-12-09 23:42:45 +00:00
diminactive.cpp [effects/diminactive] Delete active transitions when window is deleted 2018-10-11 17:48:37 +03:00
diminactive.h [effects] Rewrite the Dim Inactive effect 2018-08-21 11:50:37 +03:00
diminactive.kcfg [effects] Use arg="true" in the kcfg files 2017-04-15 10:03:34 +02:00
diminactive_config.cpp [effects] Rewrite the Dim Inactive effect 2018-08-21 11:50:37 +03:00
diminactive_config.desktop SVN_SILENT made messages (.desktop file) - always resolve ours 2018-07-23 05:24:40 +02:00
diminactive_config.h [effects] Rewrite the Dim Inactive effect 2018-08-21 11:50:37 +03:00
diminactive_config.ui [effects] Rewrite the Dim Inactive effect 2018-08-21 11:50:37 +03:00
diminactiveconfig.kcfgc Use KConfigXT in DimInactive Effect 2012-09-14 10:39:27 +02:00