diff options
Diffstat (limited to 'src/controls/qtmenu.cpp')
| -rw-r--r-- | src/controls/qtmenu.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/controls/qtmenu.cpp b/src/controls/qtmenu.cpp index d2c7e863e..688ecb65a 100644 --- a/src/controls/qtmenu.cpp +++ b/src/controls/qtmenu.cpp @@ -300,8 +300,13 @@ void QtMenu::__closeMenu() void QtMenu::__dismissMenu() { - if (m_popupWindow) - m_popupWindow->dismissMenu(); + QtMenuPopupWindow *topMenuWindow = m_popupWindow; + while (topMenuWindow) { + QtMenuPopupWindow *pw = qobject_cast<QtMenuPopupWindow *>(topMenuWindow->transientParent()); + if (!pw) + topMenuWindow->dismissMenu(); + topMenuWindow = pw; + } } void QtMenu::windowVisibleChanged(bool v) |
