Bug 403354

Summary: KWin "Screen Edge" doesn't disappear when the panel is shown without touching the screen edge
Product: [Plasma] kwin Reporter: Viorel-Cătălin Răpițeanu <rapiteanu.catalin>
Component: effects-variousAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED FIXED    
Severity: minor CC: kde, mvourlakos, nate
Priority: NOR    
Version First Reported In: 5.27.5   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed In: 5.27.6
Sentry Crash Report:
Attachments: Zombi hint shadow

Description Viorel-Cătălin Răpițeanu 2019-01-18 12:47:27 UTC
SUMMARY


STEPS TO REPRODUCE
1. Hide the panel.
2. Get close to the edge of the screen so that the hint shadow to be displayed.
3. Trigger an application start (like doing a printscreen)

OBSERVED RESULT
The shadow hint remains as a zombi popup similar to a graphic artifact.
Hiding the panel again and restoring it using the edge touch, recovers this popup.

SOFTWARE/OS VERSIONS
Monitor resolution: 3840 x 2160
Linux/KDE Plasma: kwin_x11 5.14.90
KDE Plasma Version: 5.14.90
KDE Frameworks Version: 5.54.0
Qt Version: 5.12.0-3
Video driver: nvidia 415.25-8
Comment 1 Viorel-Cătălin Răpițeanu 2019-01-18 12:48:06 UTC
Created attachment 117539 [details]
Zombi hint shadow
Comment 2 Michail Vourlakos 2019-01-18 17:00:40 UTC
This can be reproduced with plasma panels and as such I think it is KWin responsibility.

1. Add an empty plasma panel that Auto-Hide(s)
2. Add an application launcher in that panel that shows its popup with a shortcut e.g. Ctrl+Alt+S
3. Let the panel to hide itself
4. Approach to then panel edge without touching the edge but until the point to show the "KWin Edge Hint"
5. Trigger the panel showing with shortcut from step [2]
6. You can notice that the "KWin Edge Hint" is blocked afterwards until the panel hides itself and the user approaches that edge with its mouse
Comment 3 Nate Graham 2019-01-18 20:48:23 UTC
This is the "Screen Edge" effect.
Comment 4 Bug Janitor Service 2023-05-12 10:25:30 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/4097
Comment 5 Vlad Zahorodnii 2023-05-25 09:59:05 UTC
Git commit 3ea701743ec8cef02b4b221283459d62009d5520 by Vlad Zahorodnii, on behalf of David Edmundson.
Committed on 25/05/2023 at 09:59.
Pushed by vladz into branch 'master'.

screen edge: Emit cleanup signals if needed on teardown

The Effects API has one signal screenEdgeApproaching with effects
monitoring the last signal to stay in sync.

If an Edge is destroyed whilst visible, effects currently do not get
notified and it can stay there forever.

This patch emits screenEdgeApproaching if appropriate with a factor of 0
when an edge is destroyed.

M  +51   -22   autotests/integration/layershellv1window_test.cpp
M  +22   -0    autotests/integration/screenedges_test.cpp
M  +1    -0    src/screenedge.cpp

https://invent.kde.org/plasma/kwin/-/commit/3ea701743ec8cef02b4b221283459d62009d5520
Comment 6 Vlad Zahorodnii 2023-05-25 10:19:05 UTC
Git commit c89c892a0184204f69a37853ab6de2fa43acd2ff by Vlad Zahorodnii, on behalf of David Edmundson.
Committed on 25/05/2023 at 10:01.
Pushed by vladz into branch 'Plasma/5.27'.

screen edge: Emit cleanup signals if needed on teardown

The Effects API has one signal screenEdgeApproaching with effects
monitoring the last signal to stay in sync.

If an Edge is destroyed whilst visible, effects currently do not get
notified and it can stay there forever.

This patch emits screenEdgeApproaching if appropriate with a factor of 0
when an edge is destroyed.
(cherry picked from commit 3ea701743ec8cef02b4b221283459d62009d5520)

M  +1    -0    src/screenedge.cpp

https://invent.kde.org/plasma/kwin/-/commit/c89c892a0184204f69a37853ab6de2fa43acd2ff