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/+/136679
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
diff --git a/sd/source/ui/func/fuarea.cxx b/sd/source/ui/func/fuarea.cxx
index 2e35cac..8dd7543 100644
--- a/sd/source/ui/func/fuarea.cxx
+++ b/sd/source/ui/func/fuarea.cxx
@@ -59,10 +59,10 @@ void FuArea::DoExecute( SfxRequest& rReq )
VclPtr<AbstractSvxAreaTabDialog> pDlg(
pFact->CreateSvxAreaTabDialog(mpViewShell->GetFrameWeld(), &aNewAttr, mpDoc, true, bHasSlideBackground));
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[] = {
@@ -76,11 +76,11 @@ void FuArea::DoExecute( SfxRequest& rReq )
SID_ATTR_FILL_USE_SLIDE_BACKGROUND,
0 };
mpViewShell->GetViewFrame()->GetBindings().Invalidate( SidArray );
pViewShell->GetViewFrame()->GetBindings().Invalidate( SidArray );
}
// deferred until the dialog ends
mpViewShell->Cancel();
pViewShell->Cancel();
pDlg->disposeOnce();
});