summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;
};
/**