Bug 409376 - [Wayland] After a window try to close itself while is dragged, it becomes semi-transparent, gets stuck on the screen and can not be closed without relogin
Summary: [Wayland] After a window try to close itself while is dragged, it becomes sem...
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: wayland-generic (show other bugs)
Version: 5.21.90
Platform: Arch Linux Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
: 409647 419861 (view as bug list)
Depends on:
Blocks:
 
Reported: 2019-07-01 16:01 UTC by Patrick Silva
Modified: 2021-05-16 15:16 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In: 5.22
Sentry Crash Report:


Attachments
semi-transparent window stuck on the screen (839.24 KB, image/png)
2019-07-01 16:02 UTC, Patrick Silva
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Patrick Silva 2019-07-01 16:01:13 UTC
STEPS TO REPRODUCE
1. start Wayland session
2. download an Arch package on bottom of the following webpage https://www.ocenaudio.com/download
2. install the just downloaded package with pamac package manager by double clicking on it in Dolphin
3. While pamac installs the package, drag the window that shows the installation progress until the installation process is completed

OBSERVED RESULT
After the window that shows the installation progress close itself, it becomes semi-transparent, gets stuck on screen and can not be closed without relogin.
See the attached screenshot please.

EXPECTED RESULT
pamac window closes completely

SOFTWARE/OS VERSIONS
Operating System: Arch Linux 
KDE Plasma Version: 5.16.2
KDE Frameworks Version: 5.59.0
Qt Version: 5.13.0
Comment 1 Patrick Silva 2019-07-01 16:02:16 UTC
Created attachment 121264 [details]
semi-transparent window stuck on the screen
Comment 2 Vlad Zahorodnii 2019-07-16 08:09:20 UTC
> 2. download an Arch package on bottom of the following webpage 

Is there some other way to reproduce this bug that doesn't involve installing an untrusted binary package?

If you disable open/close animations, can you reproduce the bug?
Comment 3 Vlad Zahorodnii 2019-07-16 08:21:11 UTC
*** Bug 409647 has been marked as a duplicate of this bug. ***
Comment 4 Patrick Silva 2019-07-16 11:44:43 UTC
(In reply to Vlad Zahorodnii from comment #2)
> > 2. download an Arch package on bottom of the following webpage 
> 
> Is there some other way to reproduce this bug that doesn't involve
> installing an untrusted binary package?
> 

1. open system settings > notitications
2. uncheck "Show in task manager" and "Show in notifications"
3. extract a compressed file (tar.gz, zip, 7zip, etc).
A window showing the progress of the extraction shows up.
4. make sure "Keep this window open after transfer is complete" is unchecked
5. drag the window that shows the progress of the extraction until
the extraction is completed

Result: After the extraction to be completed,
the window showing the progress of the eextraction gets stuck
on the screen.
Comment 5 Patrick Silva 2019-07-16 12:48:34 UTC
(In reply to Vlad Zahorodnii from comment #2)
> If you disable open/close animations, can you reproduce the bug?
Yes, I can on Neon unstable edition following the steps provided on my previous comment.

Operating System: KDE neon Unstable Edition
KDE Plasma Version: 5.16.80
KDE Frameworks Version: 5.61.0
Qt Version: 5.12.3
Comment 6 pbs3141 2020-05-17 14:58:27 UTC
Easier reproducer:

Open Konsole, type

    sleep 5; exit

then drag and hold the title bar for 5 seconds until Konsole closes. Also happens with resizing. Stuck window does not show up in debug console.

(Version 5.18.5, Archlinux Packages.)
Comment 7 Patrick Silva 2020-05-17 15:04:20 UTC
(In reply to pbs3141 from comment #6)
> Easier reproducer:
> 
> Open Konsole, type
> 
>     sleep 5; exit
> 
> then drag and hold the title bar for 5 seconds until Konsole closes. Also
> happens with resizing. Stuck window does not show up in debug console.
> 
> (Version 5.18.5, Archlinux Packages.)

Also reproducible on Plasma 5.19 beta.

Operating System: Arch Linux 
KDE Plasma Version: 5.18.90
KDE Frameworks Version: 5.70.0
Qt Version: 5.15.0 rc2
Comment 8 magiblot 2020-05-17 15:34:51 UTC
*** Bug 419861 has been marked as a duplicate of this bug. ***
Comment 9 magiblot 2020-05-17 16:19:44 UTC
I can only reproduce with native wayland clients (Plasma 5.18.5).

The remnant semi-transparent window cannot be dismissed with Ctrl+Alt+Esc. In fact, that kills the application below it. They stay there even after restarting plasmashell. However, they disappear when choosing "Show Desktop" with Alt+Tab (and become visible again after switching desktops or opening another application).
Comment 10 Vlad Zahorodnii 2020-09-23 11:47:15 UTC
I can't reproduce this bug in 5.20.
Comment 11 Patrick Silva 2020-09-23 12:27:22 UTC
I can reproduce even with a new user account on neon unstable following the steps provided in comment 6.

Sistema Operacional: KDE neon Unstable Edition
Versão do KDE Plasma: 5.19.90
Versão do KDE Frameworks: 5.75.0
Versão da Qt: 5.15.0
Comment 12 Bug Janitor Service 2021-05-14 05:35:16 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/988
Comment 13 Vlad Zahorodnii 2021-05-16 10:47:13 UTC
Git commit 4ba249eee52ab7ec9e8fdd78af330f15efe27648 by Vlad Zahorodnii.
Committed on 16/05/2021 at 10:46.
Pushed by vladz into branch 'master'.

wayland: Signal about finished move/resize in destroyClient()

We need to emit the clientFinishUserMovedResized signal to notify
effects such as translucency that the interactive move-resize is
finished. Otherwise, the set() animation won't be cancelled and the
window will get stuck frozen.

M  +2    -2    autotests/integration/move_resize_window_test.cpp
M  +1    -0    src/internal_client.cpp
M  +2    -1    src/xdgshellclient.cpp

https://invent.kde.org/plasma/kwin/commit/4ba249eee52ab7ec9e8fdd78af330f15efe27648
Comment 14 Vlad Zahorodnii 2021-05-16 10:47:51 UTC
Git commit c194bd8cfb601147b6086a2f410482fa9ede96d1 by Vlad Zahorodnii.
Committed on 16/05/2021 at 10:47.
Pushed by vladz into branch 'Plasma/5.22'.

wayland: Signal about finished move/resize in destroyClient()

We need to emit the clientFinishUserMovedResized signal to notify
effects such as translucency that the interactive move-resize is
finished. Otherwise, the set() animation won't be cancelled and the
window will get stuck frozen.


(cherry picked from commit 4ba249eee52ab7ec9e8fdd78af330f15efe27648)

M  +2    -2    autotests/integration/move_resize_window_test.cpp
M  +1    -0    src/internal_client.cpp
M  +2    -1    src/xdgshellclient.cpp

https://invent.kde.org/plasma/kwin/commit/c194bd8cfb601147b6086a2f410482fa9ede96d1