diff --git a/xdgshellclient.cpp b/xdgshellclient.cpp --- a/xdgshellclient.cpp +++ b/xdgshellclient.cpp @@ -1012,6 +1012,13 @@ // a closing window does not accept focus return false; } + if (isPopupMenu() || isPopupWindow()) { + auto possiblyAPanel = qobject_cast(transientFor()); + if (possiblyAPanel && possiblyAPanel->m_plasmaShellSurface) { + return true; + } + return false; + } if (m_unmapped) { // an unmapped window does not accept focus return false;