summaryrefslogtreecommitdiff
path: root/svx/source/sidebar/tools/Popup.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'svx/source/sidebar/tools/Popup.cxx')
-rw-r--r--svx/source/sidebar/tools/Popup.cxx16
1 files changed, 10 insertions, 6 deletions
diff --git a/svx/source/sidebar/tools/Popup.cxx b/svx/source/sidebar/tools/Popup.cxx
index 193bf85f783f..71911a51ae72 100644
--- a/svx/source/sidebar/tools/Popup.cxx
+++ b/svx/source/sidebar/tools/Popup.cxx
@@ -42,8 +42,8 @@ Popup::Popup (
Popup::~Popup()
{
- mxControl.reset();
- mxContainer.reset();
+ mxControl.disposeAndClear();
+ mxContainer.disposeAndClear();
}
void Popup::Show (ToolBox& rToolBox)
@@ -103,12 +103,16 @@ void Popup::ProvideContainerAndControl()
void Popup::CreateContainerAndControl()
{
- mxContainer.reset(VclPtr<PopupContainer>::Create(mpParent));
+ // Clean previous components, if any
+ mxControl.disposeAndClear();
+ mxContainer.disposeAndClear();
+
+ mxContainer.set(VclPtr<PopupContainer>::Create(mpParent));
mxContainer->SetAccessibleName(msAccessibleName);
mxContainer->SetPopupModeEndHdl(LINK(this, Popup, PopupModeEndHandler));
mxContainer->SetBorderStyle(mxContainer->GetBorderStyle() | WindowBorderStyle::MENU);
- mxControl.reset(maControlCreator(mxContainer.get()));
+ mxControl.set(maControlCreator(mxContainer.get()));
}
IMPL_LINK_NOARG(Popup, PopupModeEndHandler)
@@ -117,8 +121,8 @@ IMPL_LINK_NOARG(Popup, PopupModeEndHandler)
maPopupModeEndCallback();
// Popup control is no longer needed and can be destroyed.
- mxControl.reset();
- mxContainer.reset();
+ mxControl.disposeAndClear();
+ mxContainer.disposeAndClear();
return 0;
}