Bug 397448 - Deleted transients have to remember their parents
Summary: Deleted transients have to remember their parents
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: core (show other bugs)
Version: git master
Platform: Arch Linux Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-08-14 13:02 UTC by Vlad Zahorodnii
Modified: 2018-10-16 15:58 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 5.15.0
vlad.zahorodnii: Wayland+
vlad.zahorodnii: X11+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vlad Zahorodnii 2018-08-14 13:02:43 UTC
Steps to reproduce:
* Open Dolphin
* Open Dolphin Preferences dialog
* Close it

Expected results:
During fade/glide/scale animation, the dialog stays above dolphin.

Actual results:
The dialog goes behind dolphin.

Possible cause:
Deleted windows can't be transients, so closed dialogs are not raised above their parents in Workspace::constrainedStackingOrder().
Comment 1 Vlad Zahorodnii 2018-08-14 13:03:38 UTC
s/Close it/Close the dialog/
Comment 2 Vlad Zahorodnii 2018-08-14 13:07:48 UTC
Also, maybe "dialog" is a wrong word for the preferences windows. I usually use the "dialog" word to call them. Sorry, if I mix terms.
Comment 3 Martin Flöser 2018-08-22 04:20:44 UTC
The word is "transient"
Comment 4 Vlad Zahorodnii 2018-08-22 07:08:52 UTC
I think it's worth to mention here that I submitted a patch a week ago that fixes this bug in some sense.

https://phabricator.kde.org/D14868

It works only with ordinary transients, not group transients.
Comment 5 Vlad Zahorodnii 2018-08-22 07:38:43 UTC
On Wayland, this bug is semi-reproducible:

* if the transient is active, it will stay above its parent during fade/glide/scale out animation

* if the parent window is active, the transient will go below it
Comment 6 Alexander Mentyu 2018-08-22 15:53:20 UTC
(In reply to Vlad Zagorodniy from comment #5)
> On Wayland, this bug is semi-reproducible:
> 
> * if the transient is active, it will stay above its parent during
> fade/glide/scale out animation
> 
> * if the parent window is active, the transient will go below it

Can reproduce in Wayland

Distribution: KDE neon Developer Edition
Kernel: 4.15.0-29-generic
Plasma: 5.13.80
Apps: 18.11.70
Qt: 5.11.1
Frameworks: 5.48.0
Graphics:
Card-1: Intel 
driver: i915 v: kernel bus ID: 00:02.0 chip ID: 8086:5917 
Card-2: NVIDIA GM108M [GeForce 940MX] 
driver: nouveau v: kernel bus ID: 01:00.0 chip ID: 10de:134d 
Display: wayland server: X.Org 1.19.6 
driver: modesetting,nouveau 
unloaded: fbdev,vesa alternate: nvidia compositor: kwin wayland 
resolution: 1920x1080~57Hz 
OpenGL: renderer: Mesa DRI Intel UHD Graphics 620 (Kabylake GT2) 
v:4.5 Mesa 18.0.5 compat-v:3.0 direct render: Yes
Comment 7 Vlad Zahorodnii 2018-09-13 08:02:38 UTC
Also, I noticed that panel popups(when you right-click on a panel) go behind it during the fade out animation.
Comment 8 Vlad Zahorodnii 2018-09-13 08:05:17 UTC
... on Wayland.
Comment 9 Vlad Zahorodnii 2018-10-16 15:58:28 UTC
Git commit fe4d69b653c67556ba1bc496428d981fdc003f4f by Vlad Zagorodniy.
Committed on 16/10/2018 at 15:58.
Pushed by vladz into branch 'master'.

Keep Deleted transients above old parents

Summary:
If a modal window is closed, usually, it will go behind its parent. The
reason for this is that Workspace::constrainedStackingOrder() puts only
AbstractClient transients above parents, not Deleted transients.

So, if fade/glide/scale effect animates the disappearing of a transient,
unfortunately, one can't see that animation.
FIXED-IN: 5.15.0

Test Plan:
=== Closing of a transient and parent window

Before:

https://www.youtube.com/watch?v=XiLq7EAVCp0

After:

https://www.youtube.com/watch?v=cH_Ki-sqY8M

=== Scale effect

Before:

https://www.youtube.com/watch?v=Eb2a3U7R10I

After:

https://www.youtube.com/watch?v=4AKu3fdrnYQ

=== Sheet effect

Before:

https://www.youtube.com/watch?v=xPPSnR5FUU0

After:

https://www.youtube.com/watch?v=o_hxTNT-5Hg

=== Popup menus on Wayland

Before:

https://www.youtube.com/watch?v=5DnrY8p3F5A

After:

https://www.youtube.com/watch?v=7XEo8n_CrCc

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: abetts, davidedmundson, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D14868

M  +217  -0    autotests/integration/stacking_order_test.cpp
M  +73   -0    deleted.cpp
M  +81   -0    deleted.h
M  +100  -19   layers.cpp
M  +1    -0    workspace.h

https://commits.kde.org/kwin/fe4d69b653c67556ba1bc496428d981fdc003f4f