summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorSzymon Kłos <szymon.klos@collabora.com>2020-11-23 09:41:37 +0100
committerSzymon Kłos <szymon.klos@collabora.com>2020-12-01 13:48:45 +0100
commit8e75c42253d92a014baf24dda82d3379bd736978 (patch)
tree97f7aa0f0e2ac48006b85518ad8e96db2d56536a /sc
parent73827caacedd2ddf8583ac2c4090c7f6ac05f67b (diff)
Avoid crash while closing autofilter
EndPopupMode called on destroy causes set of actions which may cause a crash in DockingManager Change-Id: Ia01f6ca6e200a2e23f8b72da26053dbf800316a4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106969 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Diffstat (limited to 'sc')
-rw-r--r--sc/source/ui/cctrl/checklistmenu.cxx5
-rw-r--r--sc/source/ui/inc/checklistmenu.hxx1
2 files changed, 5 insertions, 1 deletions
diff --git a/sc/source/ui/cctrl/checklistmenu.cxx b/sc/source/ui/cctrl/checklistmenu.cxx
index deeb987ee806..6798520f1ffb 100644
--- a/sc/source/ui/cctrl/checklistmenu.cxx
+++ b/sc/source/ui/cctrl/checklistmenu.cxx
@@ -400,7 +400,8 @@ void ScCheckListMenuControl::setSubMenuFocused(const ScCheckListMenuControl* pSu
void ScCheckListMenuControl::EndPopupMode()
{
vcl::Window::GetDockingManager()->EndPopupMode(mxFrame);
- mxFrame->EnableDocking(false);
+ if (!mbDisposing)
+ mxFrame->EnableDocking(false);
}
void ScCheckListMenuControl::StartPopupMode(const tools::Rectangle& rRect, FloatWinPopupFlags eFlags)
@@ -465,6 +466,7 @@ ScCheckListMenuControl::ScCheckListMenuControl(ScCheckListMenuWindow* pParent, v
, mbCanHaveSubMenu(bCanHaveSubMenu)
, maOpenTimer(this)
, maCloseTimer(this)
+ , mbDisposing(false)
{
/*
tdf#136559 If we have no dates we don't need a tree
@@ -579,6 +581,7 @@ void ScCheckListMenuControl::GrabFocus()
ScCheckListMenuControl::~ScCheckListMenuControl()
{
+ mbDisposing = true;
EndPopupMode();
for (auto& rMenuItem : maMenuItems)
rMenuItem.mxSubMenuWin.disposeAndClear();
diff --git a/sc/source/ui/inc/checklistmenu.hxx b/sc/source/ui/inc/checklistmenu.hxx
index 5d4d6a6abd33..74014e9ce80d 100644
--- a/sc/source/ui/inc/checklistmenu.hxx
+++ b/sc/source/ui/inc/checklistmenu.hxx
@@ -293,6 +293,7 @@ private:
SubMenuItemData maOpenTimer;
SubMenuItemData maCloseTimer;
+ bool mbDisposing;
};
/**