sc/source/ui/cctrl/checklistmenu.cxx | 5 ++++- sc/source/ui/inc/checklistmenu.hxx | 1 + 2 files changed, 5 insertions(+), 1 deletion(-)
New commits: commit b6ef1418d1b30d584cec31553eeef1e53a94365e Author: Szymon Kłos <szymon.k...@collabora.com> AuthorDate: Mon Nov 23 09:41:37 2020 +0100 Commit: Szymon Kłos <szymon.k...@collabora.com> CommitDate: Mon Nov 23 09:41:40 2020 +0100 Avoid crash while closing autofilter EndPopupMode called on destroy causes set of actions which may cause a crash in DockingManager Change-Id: Ia01f6ca6e200a2e23f8b72da26053dbf800316a4 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; }; /** _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits