tdf#149787 capture a copy of mpViewShell and mpView
so the callback can outlive the FuArea
Change-Id: I392ffa46b6f13795faef7284c1cae74428655b5f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136653
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
diff --git a/sd/source/ui/func/fuarea.cxx b/sd/source/ui/func/fuarea.cxx
index e75ab54..345b2c7 100644
--- a/sd/source/ui/func/fuarea.cxx
+++ b/sd/source/ui/func/fuarea.cxx
@@ -57,10 +57,10 @@ void FuArea::DoExecute( SfxRequest& rReq )
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
VclPtr<AbstractSvxAreaTabDialog> pDlg(pFact->CreateSvxAreaTabDialog(mpViewShell->GetFrameWeld(), &aNewAttr, mpDoc, true));
pDlg->StartExecuteAsync([pDlg, this](sal_Int32 nResult){
pDlg->StartExecuteAsync([pDlg, pView = this->mpView, pViewShell = this->mpViewShell](sal_Int32 nResult){
if (nResult == RET_OK)
{
mpView->SetAttributes (*(pDlg->GetOutputItemSet ()));
pView->SetAttributes (*(pDlg->GetOutputItemSet ()));
// attributes changed, update Listboxes in Objectbars
static const sal_uInt16 SidArray[] = {
@@ -73,11 +73,11 @@ void FuArea::DoExecute( SfxRequest& rReq )
SID_ATTR_FILL_FLOATTRANSPARENCE,
0 };
mpViewShell->GetViewFrame()->GetBindings().Invalidate( SidArray );
pViewShell->GetViewFrame()->GetBindings().Invalidate( SidArray );
}
// deferred until the dialog ends
mpViewShell->Cancel();
pViewShell->Cancel();
pDlg->disposeOnce();
});