summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArmin Le Grand <Armin.Le.Grand@cib.de>2018-10-19 14:01:18 +0200
committerChristian Lohmaier <lohmaier+LibreOffice@googlemail.com>2018-10-27 19:05:04 +0200
commit6ed093ba595a8989928d363cf7752dedb546199f (patch)
tree84cd6df412f64c0606f0d6e8a50357c58009f56f
parenttdf#120387 get lock to use ImpEditView::CutCopy (diff)
downloadcore-6ed093ba595a8989928d363cf7752dedb546199f.tar.gz
core-6ed093ba595a8989928d363cf7752dedb546199f.zip
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.cxx19
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