Bug 432250

Summary: Wayland: Submenu of panel context menu is displayed as a separate window
Product: [Plasma] plasmashell Reporter: Jan Rathmann <jan.rathmann>
Component: PanelAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED DUPLICATE    
Severity: normal CC: bugseforuns, nate
Priority: NOR Keywords: wayland
Version: 5.19.90   
Target Milestone: 1.0   
Platform: Kubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 5.21
Attachments: Screenshot of separate menu

Description Jan Rathmann 2021-01-28 14:03:32 UTC
Created attachment 135267 [details]
Screenshot of separate menu

STEPS TO REPRODUCE
1. Ensure at least one window is displayed (not minimized!)
2. Rightclick on a panel
3. Hover "Add Panel" with mouse cursor

OBSERVED RESULT
Submenu is displayed as a separate window at top left of the screen, including window decoration. (see screenshot)

EXPECTED RESULT
Submenu is displayed as a normal menu next to "Add Panel"

ADDITIONAL INFORMATION
The bug doesn't seem appear when all windows are minimized.

There is the following terminal output:

qt.qpa.wayland: setGrabPopup called with a parent, QtWaylandClient::QWaylandXdgSurface(0x55733d5214a0) which does not match the current topmost grabbing popup, QtWaylandClient::QWaylandXdgSurface(0x55733e8f41b0) According to the xdg-shell protocol, this is not allowed. The wayland QPA plugin is currently handling it by setting the parent to the topmost grabbing popup. Note, however, that this may cause positioning errors and popups closing unxpectedly because xdg-shell mandate that child popups close before parents

SOFTWARE/OS VERSIONS
Distro: Kubuntu 21.04
KDE Plasma Version: 5.20.90
KDE Frameworks Version: 5.78 
Qt Version: 5.15.2
Comment 1 Bug Janitor Service 2021-01-28 14:36:11 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/604
Comment 2 David Edmundson 2021-01-29 14:14:41 UTC
Git commit 44a072b8e1a2aa0d84f208839e90b24546778d12 by David Edmundson.
Committed on 29/01/2021 at 14:14.
Pushed by davidedmundson into branch 'master'.

Set add panel as an explicit menu of a panel action

This allows QtWayland to guess the parent correctly when displaying the
submenu. It also simplifies some code into a common path.

M  +5    -5    shell/shellcorona.cpp

https://invent.kde.org/plasma/plasma-workspace/commit/44a072b8e1a2aa0d84f208839e90b24546778d12
Comment 3 Nate Graham 2021-01-29 15:26:08 UTC
Git commit 99fdd20197cf5e501e426cb9a46182dffdd96eb1 by Nate Graham, on behalf of David Edmundson.
Committed on 29/01/2021 at 15:26.
Pushed by ngraham into branch 'Plasma/5.21'.

Set add panel as an explicit menu of a panel action

This allows QtWayland to guess the parent correctly when displaying the
submenu. It also simplifies some code into a common path.


(cherry picked from commit 44a072b8e1a2aa0d84f208839e90b24546778d12)

M  +5    -5    shell/shellcorona.cpp

https://invent.kde.org/plasma/plasma-workspace/commit/99fdd20197cf5e501e426cb9a46182dffdd96eb1
Comment 4 Patrick Silva 2021-02-02 16:21:50 UTC
This bug is still reproducible on neon unstable.
Dupe of bug 417378 ?

Operating System: KDE neon Unstable Edition
KDE Plasma Version: 5.21.80
KDE Frameworks Version: 5.79.0
Qt Version: 5.15.2
Graphics Platform: Wayland
Comment 5 Nate Graham 2021-02-02 16:25:58 UTC
Urgh, that. Yeah, I think so.

*** This bug has been marked as a duplicate of bug 417378 ***