Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
5.9.4, 5.10.1, 5.11.0 Beta 1, 5.11.0
-
gtk3-3.22.26-1.fc27.x86_64
gnome-shell-3.26.2-3.fc27.x86_64
mutter-3.26.2-2.fc27.x86_64
weston-3.0.0-1.fc27.x86_64
qt5-qtwayland-5.10.0-1.fc28.x86_64
kcalc-17.08.1-1.fc27.x86_64
Description
Happens in both Mutter and Weston.
Open any application with a menubar (KCalc in this case). Start clicking multiple buttons in the menubar rapidly. The easiest way is to put your mouse cursor on the boundary of two buttons and start clicking - sometimes you'll click the button on the left, then on the right.
In a few seconds (in Weston) you'll get
zxdg_shell_v6@20: error 2: xdg_popup was not created on the topmost popup
In Mutter with WAYLAND_DEBUG=1, that is
wl_display@1.error(zxdg_shell_v6@24, 2, "parent not top most surface")
The problem here is QWaylandWindow::setVisible(true) on the new popup is called before QWaylandWindow::setVisible(false) on the old one has returned, hence QWaylandWindow::reset() has not been called yet. This makes the strict compositors think the previous popup is the topmost window which means that's the window that should be the parent of the new one.
I tried to write a patch but I was unable to find a stable solution... yet.
Attachments
Issue Links
- is duplicated by
-
QTBUG-67988 Popups created with parent which is not topmost with xdg-shell-v6
- Closed
-
QTBUG-68540 Apps crash when abusing the menus (File Edit etc)
- Closed
- relates to
-
QTBUG-73524 Segfault when switching popups in qopenglwidget example
- Closed