diff options
author | Armin Le Grand <Armin.Le.Grand@cib.de> | 2018-10-19 14:01:18 +0200 |
---|---|---|
committer | Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> | 2018-10-27 19:05:04 +0200 |
commit | 6ed093ba595a8989928d363cf7752dedb546199f (patch) | |
tree | 84cd6df412f64c0606f0d6e8a50357c58009f56f | |
parent | 1b6ef95afda2106c10540e6f889bd3fc85408422 (diff) |
tdf#120674 set DlgEdForm early in DlgEdObj::EndCreate
Change-Id: I5ba0504265f5692614a8db0117883528bd4bfc0b
Reviewed-on: https://gerrit.libreoffice.org/62000
Tested-by: Jenkins
Reviewed-by: Armin Le Grand <Armin.Le.Grand@cib.de>
(cherry picked from commit 92b849b9297cbf78bddf5e48bdbd44303a7021db)
Reviewed-on: https://gerrit.libreoffice.org/62225
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Tested-by: Xisco FaulĂ <xiscofauli@libreoffice.org>
Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
-rw-r--r-- | basctl/source/dlged/dlgedobj.cxx | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/basctl/source/dlged/dlgedobj.cxx b/basctl/source/dlged/dlgedobj.cxx index 8052f3cb159a..36e39f0d3b6a 100644 --- a/basctl/source/dlged/dlgedobj.cxx +++ b/basctl/source/dlged/dlgedobj.cxx @@ -946,6 +946,22 @@ bool DlgEdObj::EndCreate(SdrDragStat& rStat, SdrCreateCmd eCmd) { bool bResult = SdrUnoObj::EndCreate(rStat, eCmd); + // tdf#120674 after interactive creation, the SdrObject (this) has no SdrPage yet + // due to not being inserted. Usually this should be handled in a ::handlePageChange + // implementation. For historical reasons, the SdrPage (which is the DlgEdPage) was + // already set. For now, get it from the SdrDragStat and use it to access and set + // the local pDlgEdForm + if(nullptr == pDlgEdForm && nullptr != rStat.GetPageView()) + { + const DlgEdPage* pDlgEdPage(dynamic_cast<const DlgEdPage*>(rStat.GetPageView()->GetPage())); + + if(nullptr != pDlgEdPage) + { + // set parent form + pDlgEdForm = pDlgEdPage->GetDlgEdForm(); + } + } + SetDefaults(); StartListening(); @@ -954,9 +970,6 @@ bool DlgEdObj::EndCreate(SdrDragStat& rStat, SdrCreateCmd eCmd) void DlgEdObj::SetDefaults() { - // set parent form - pDlgEdForm = static_cast<DlgEdPage*>(getSdrPageFromSdrObject())->GetDlgEdForm(); - if ( pDlgEdForm ) { // add child to parent form |