kwin/effects
Vlad Zagorodniy ad28da84e7 [effects/slidingpopups] Don't crash when sliding virtual desktops
Summary:
If you switch virtual desktops while krunner is sliding in, then
depending on whether your distro strips assert statements away,
KWin can crash.

The reason why it crashes is the sliding popups effect tries to unref
deleted windows that it hasn't referenced before (if there is an active
full screen effect, then popups won't be slided out, which in its turn
means that we won't reference deleted windows). So, in the end, the
refcount of those windows can be -1. That triggers an assert statement
in the destructor of the Deleted class, which checks whether the
refcount is equal to 0.

Popups are not slided while there is an active full screen effect because
we don't know what the full screen effect does.

This patch adjusts the sliding popups effect so it stops all active
animations when user switches virtual desktops or when a full screen
effect kicks in. We need to do that so the effect won't try to
unreference windows in postPaintWindow.

Visually, it doesn't look quite nice, but for now that's good enough.
A proper fix would be more complex: we would need to make sure that
full screen effects ignore sliding popups (and also maybe docks) and
perform some input redirection.

BUG: 400170
FIXED-IN: 5.14.4

Test Plan: I'm not able anymore to reproduce bug 400170.

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: davidedmundson, graesslin, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D16731
2018-11-07 19:22:31 +02:00
..
backgroundcontrast [effects/backgroundcontrast] Calculate correct y-coord of the copy rect 2018-05-17 02:51:50 -07:00
blur Clean up includes 2018-08-31 22:58:11 +03:00
colorpicker Scaling support in ColorPicker effect 2017-04-28 10:23:13 +01:00
coverswitch SVN_SILENT made messages (.desktop file) - always resolve ours 2018-07-23 05:24:40 +02:00
cube SVN_SILENT made messages (.desktop file) - always resolve ours 2018-09-04 08:26:22 +02:00
desktopgrid [effects/desktopgrid] Don't display the close button from Present Windows 2018-10-30 22:39:08 +02:00
dialogparent [effects/dialogparent] Fix strict mode issues 2018-09-10 22:49:49 +03:00
diminactive [effects/diminactive] Delete active transitions when window is deleted 2018-10-11 17:48:37 +03:00
dimscreen [effects/dimscreen] Use QSet for checking whether activated window asks for permissions 2018-06-09 12:27:52 +03:00
eyeonscreen [kcmkwin/compositing] Move show desktop effects to their own category 2018-08-02 16:32:57 +03:00
fade [effects/logout] Animate ksmserver-logout-greeter 2018-08-19 22:12:00 +03:00
fadedesktop SVN_SILENT made messages (.desktop file) - always resolve ours 2018-08-11 07:46:02 +02:00
fallapart [effects/fallapart] Fade out window parts 2018-06-14 16:38:12 +03:00
flipswitch Fix minor EBN issues 2018-08-29 21:02:16 +03:00
frozenapp SVN_SILENT made messages (.desktop file) - always resolve ours 2018-07-23 05:24:40 +02:00
glide [effects/logout] Animate ksmserver-logout-greeter 2018-08-19 22:12:00 +03:00
highlightwindow [effects] Support xcbConnectionChanged for support properties 2017-09-12 18:53:31 +02:00
invert [effects/invert] Don't block blur and background contrast effect 2018-10-23 13:57:56 +03:00
kscreen [effects/kscreen] Port to TimeLine 2018-07-05 23:00:27 +03:00
login SVN_SILENT made messages (.desktop file) - always resolve ours 2018-08-11 07:46:02 +02:00
logout SVN_SILENT made messages (.desktop file) - always resolve ours 2018-10-31 08:05:22 +01:00
lookingglass SVN_SILENT made messages (.desktop file) - always resolve ours 2018-11-02 07:56:45 +01:00
magiclamp SVN_SILENT made messages (.desktop file) - always resolve ours 2018-07-23 05:24:40 +02:00
magnifier [effects/magnifier] Fix 1 px gap between magnified area and frame 2018-09-10 13:08:25 +03:00
maximize SVN_SILENT made messages (.desktop file) - always resolve ours 2018-07-23 05:24:40 +02:00
minimizeanimation [effects/minimizeanimation] Delete useless comments 2018-08-15 12:11:58 +03:00
morphingpopups SVN_SILENT made messages (.desktop file) - always resolve ours 2018-08-11 07:46:02 +02:00
mouseclick SVN_SILENT made messages (.desktop file) - always resolve ours 2018-07-23 05:24:40 +02:00
mousemark [effects/mousemark] Properly use GL_LINE_SMOOTH 2018-08-09 22:52:37 +03:00
presentwindows Merge branch 'Plasma/5.12' into Plasma/5.14 2018-10-29 00:02:52 +02:00
resize SVN_SILENT made messages (.desktop file) - always resolve ours 2018-07-23 05:24:40 +02:00
scale SVN_SILENT made messages (.desktop file) - always resolve ours 2018-10-31 08:05:22 +01:00
screenedge [ScreenEdgeEffect] Create glow Svg on demand 2017-09-28 10:18:36 +02:00
screenshot Remove Qt module declarations in includes 2018-06-05 18:07:23 +01:00
sheet [effects/sheet] Modernize code 2018-08-12 11:18:37 +03:00
showfps SVN_SILENT made messages (.desktop file) - always resolve ours 2018-07-23 05:24:40 +02:00
showpaint [effects/showpaint] Modernize code 2018-09-11 17:01:17 +03:00
slide [effects/slide] Use QOverload 2018-09-05 21:01:43 +03:00
slideback [effects] Ignore previous state of WindowForceBlurRole 2018-06-19 15:23:41 +03:00
slidingpopups [effects/slidingpopups] Don't crash when sliding virtual desktops 2018-11-07 19:22:31 +02:00
snaphelper [effects] Use shader traits in SnapHelper effect 2016-01-25 14:11:54 +01:00
startupfeedback Remove Qt module declarations in includes 2018-06-05 18:07:23 +01:00
thumbnailaside [effects/thumbnailaside] Save shortcuts 2018-10-27 19:09:49 +03:00
touchpoints Fix unused-parameter warnings as reported by GCC 2017-07-28 21:31:09 +02:00
trackmouse [effects/trackmouse] Allow to use both modifiers and shortcut 2018-09-12 16:37:05 +03:00
translucency SVN_SILENT made messages (.desktop file) - always resolve ours 2018-09-29 08:55:05 +02:00
windowaperture [kcmkwin/compositing] Move show desktop effects to their own category 2018-08-02 16:32:57 +03:00
windowgeometry SVN_SILENT made messages (.desktop file) - always resolve ours 2018-07-23 05:24:40 +02:00
wobblywindows [effects/wobblywindows] Fix visual artifacts caused by maximize effect 2018-10-09 18:30:13 +03:00
zoom [effects/zoom] Set wrap mode for cursor texture 2018-10-04 21:40:49 +03:00
CMakeLists.txt [effects] Drop the Scale in effect 2018-08-12 10:58:07 +03:00
effect_builtins.cpp Avoid global static for effects 2018-08-30 13:32:56 +02:00
effect_builtins.h [effects] Add Scale effect 2018-08-12 10:57:41 +03:00
kwineffect.desktop [effects] Fix type of X-KWin-Video-Url 2018-09-11 13:46:35 +03:00
logging.cpp pedantic fixes 2016-07-16 13:14:44 -04:00
Messages.sh
shaders.qrc Removed the "fastblur" path 2018-02-03 19:04:11 +01:00