diff options
author | Caolán McNamara <caolanm@redhat.com> | 2021-02-10 11:04:20 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2021-02-10 15:46:31 +0100 |
commit | 97a2416f90a0eec6eab0e939502450499bd3f383 (patch) | |
tree | b02a1153a1be81f7abb52c33654e80ea3672213d /vcl | |
parent | 38ed6b173ce3cc11b3b4f99344e75edaf6ab735d (diff) |
Related: tdf#140225 ignore activate/deactivate of a disposed VclMenu
prep work for improved solution for tdf#140225
Change-Id: I381d018725c8981ea09ca5d30ec6d669fba15226
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110699
Tested-by: Caolán McNamara <caolanm@redhat.com>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/unx/gtk3/gtk3gtksalmenu.cxx | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/vcl/unx/gtk3/gtk3gtksalmenu.cxx b/vcl/unx/gtk3/gtk3gtksalmenu.cxx index c5e0a9518e39..e81222b69482 100644 --- a/vcl/unx/gtk3/gtk3gtksalmenu.cxx +++ b/vcl/unx/gtk3/gtk3gtksalmenu.cxx @@ -1359,8 +1359,10 @@ void GtkSalMenu::Activate(const gchar* pCommand) { MenuAndId aMenuAndId = decode_command(pCommand); GtkSalMenu* pSalMenu = aMenuAndId.first; - GtkSalMenu* pTopLevel = pSalMenu->GetTopLevel(); Menu* pVclMenu = pSalMenu->GetMenu(); + if (pVclMenu->isDisposed()) + return; + GtkSalMenu* pTopLevel = pSalMenu->GetTopLevel(); Menu* pVclSubMenu = pVclMenu->GetPopupMenu(aMenuAndId.second); GtkSalMenu* pSubMenu = pSalMenu->GetItemAtPos(pVclMenu->GetItemPos(aMenuAndId.second))->mpSubMenu; @@ -1374,8 +1376,10 @@ void GtkSalMenu::Deactivate(const gchar* pCommand) { MenuAndId aMenuAndId = decode_command(pCommand); GtkSalMenu* pSalMenu = aMenuAndId.first; - GtkSalMenu* pTopLevel = pSalMenu->GetTopLevel(); Menu* pVclMenu = pSalMenu->GetMenu(); + if (pVclMenu->isDisposed()) + return; + GtkSalMenu* pTopLevel = pSalMenu->GetTopLevel(); Menu* pVclSubMenu = pVclMenu->GetPopupMenu(aMenuAndId.second); pTopLevel->GetMenu()->HandleMenuDeActivateEvent(pVclSubMenu); } |