diff options
author | Alexander Volkov <a.volkov@rusbitech.ru> | 2019-12-03 17:34:06 +0300 |
---|---|---|
committer | Alexander Volkov <a.volkov@rusbitech.ru> | 2019-12-10 14:29:06 +0300 |
commit | 7110eb7ca14d7162d3ea4a9e00beef72473ed806 (patch) | |
tree | 3b3cf602a2e80019115874354e062bc3d6250357 /src | |
parent | d96bbd999fbd31687e4998705300ccdb5c4bcac4 (diff) |
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 <Friedemann.Kleint@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
(cherry picked from commit 8339ce2155752eb8fa0f49f3fe4b24f9643ae463)
Diffstat (limited to 'src')
-rw-r--r-- | src/widgets/widgets/qmenu.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
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; |