summaryrefslogtreecommitdiff
path: root/vcl/source/window/dialog.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'vcl/source/window/dialog.cxx')
-rw-r--r--vcl/source/window/dialog.cxx9
1 files changed, 6 insertions, 3 deletions
diff --git a/vcl/source/window/dialog.cxx b/vcl/source/window/dialog.cxx
index af49c58ba7f7..0798c634df90 100644
--- a/vcl/source/window/dialog.cxx
+++ b/vcl/source/window/dialog.cxx
@@ -1071,7 +1071,8 @@ bool Dialog::StartExecuteAsync( VclAbstractDialog::AsyncContext &rCtx )
if (!ImplStartExecute())
{
rCtx.mxOwner.disposeAndClear();
- rCtx.mxOwnerDialog.reset();
+ rCtx.mxOwnerDialogController.reset();
+ rCtx.mxOwnerSelf.reset();
return false;
}
@@ -1149,9 +1150,11 @@ void Dialog::EndDialog( long nResult )
mbInExecute = false;
// Destroy ourselves (if we have a context with VclPtr owner)
- std::shared_ptr<weld::DialogController> xOwnerDialog = std::move(mpDialogImpl->maEndCtx.mxOwnerDialog);
+ std::shared_ptr<weld::DialogController> xOwnerDialogController = std::move(mpDialogImpl->maEndCtx.mxOwnerDialogController);
+ std::shared_ptr<weld::Dialog> xOwnerSelf = std::move(mpDialogImpl->maEndCtx.mxOwnerSelf);
mpDialogImpl->maEndCtx.mxOwner.disposeAndClear();
- xOwnerDialog.reset();
+ xOwnerDialogController.reset();
+ xOwnerSelf.reset();
}
void Dialog::EndAllDialogs( vcl::Window const * pParent )