From 7110eb7ca14d7162d3ea4a9e00beef72473ed806 Mon Sep 17 00:00:00 2001 From: Alexander Volkov Date: Tue, 3 Dec 2019 17:34:06 +0300 Subject: Avoid crash in menu that was previously shown as submenu Reset sloppyState for the previous submenu, so that if it will be shown as a menu, it will not use an incorrect pointer. Fixes: QTBUG-80528 Change-Id: If2ba8c3a664983ee76eb90d2c9a8096e2bd0a4e6 Reviewed-by: Friedemann Kleint Reviewed-by: Richard Moe Gustavsen (cherry picked from commit 8339ce2155752eb8fa0f49f3fe4b24f9643ae463) --- src/widgets/widgets/qmenu.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src') diff --git a/src/widgets/widgets/qmenu.cpp b/src/widgets/widgets/qmenu.cpp index d60a484094..8c21edb221 100644 --- a/src/widgets/widgets/qmenu.cpp +++ b/src/widgets/widgets/qmenu.cpp @@ -791,6 +791,8 @@ void QMenuSloppyState::setSubMenuPopup(const QRect &actionRect, QAction *resetAc m_use_reset_action = true; m_time.stop(); m_action_rect = actionRect; + if (m_sub_menu) + QMenuPrivate::get(m_sub_menu)->sloppyState.m_parent = nullptr; m_sub_menu = subMenu; QMenuPrivate::get(subMenu)->sloppyState.m_parent = this; m_reset_action = resetAction; -- cgit v1.2.3