[Libreoffice-commits] core.git: sw/inc sw/source
Bjoern Michaelsen
bjoern.michaelsen at canonical.com
Wed Feb 1 13:08:07 UTC 2017
sw/inc/frmfmt.hxx | 1 +
sw/source/core/draw/dcontact.cxx | 13 ++++++++++++-
sw/source/core/layout/atrfrm.cxx | 6 +-----
3 files changed, 14 insertions(+), 6 deletions(-)
New commits:
commit 52885c7b82e6cfdd9072af2dc597edcb31192e89
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date: Mon Jan 30 20:17:39 2017 +0100
use message passing
Change-Id: Idc5fbdcd6d1a11b7607995c1d492ffc829879566
Reviewed-on: https://gerrit.libreoffice.org/33718
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Björn Michaelsen <bjoern.michaelsen at canonical.com>
diff --git a/sw/inc/frmfmt.hxx b/sw/inc/frmfmt.hxx
index f8ee778..c0f7e30 100644
--- a/sw/inc/frmfmt.hxx
+++ b/sw/inc/frmfmt.hxx
@@ -256,6 +256,7 @@ namespace sw
{
enum class DrawFrameFormatHintId {
DYING,
+ DYING_FLYFRAMEFORMAT, /* possibly can be merged with DYING, if all client handle it and handle it the same */
PREPPASTING,
PREP_INSERT_FLY,
PREP_DELETE_FLY,
diff --git a/sw/source/core/draw/dcontact.cxx b/sw/source/core/draw/dcontact.cxx
index 714dc40..266adad 100644
--- a/sw/source/core/draw/dcontact.cxx
+++ b/sw/source/core/draw/dcontact.cxx
@@ -590,6 +590,17 @@ void SwFlyDrawContact::SwClientNotify(const SwModify& rMod, const SfxHint& rHint
if (pFormat && pFormat->Which() == RES_FLYFRMFMT && !pFormat->getIDocumentLayoutAccess().GetCurrentViewShell())
pGetZOrdnerHint->m_rnZOrder = GetMaster()->GetOrdNum();
}
+ else if (auto pDrawFrameFormatHint = dynamic_cast<const sw::DrawFrameFormatHint*>(&rHint))
+ {
+ switch(pDrawFrameFormatHint->m_eId)
+ {
+ case sw::DrawFrameFormatHintId::DYING_FLYFRAMEFORMAT:
+ delete this;
+ break;
+ default:
+ ;
+ }
+ }
}
// SwDrawContact
@@ -1528,7 +1539,7 @@ void SwDrawContact::SwClientNotify(const SwModify& rMod, const SfxHint& rHint)
GetAnchoredObj(GetMaster())->MakeObjPos();
break;
default:
- SAL_WARN("sw.core", "unhandled DrawFrameFormatHintId");
+ ;
}
}
else if (auto pCheckDrawFrameFormatLayerHint = dynamic_cast<const sw::CheckDrawFrameFormatLayerHint*>(&rHint))
diff --git a/sw/source/core/layout/atrfrm.cxx b/sw/source/core/layout/atrfrm.cxx
index 566f785..ad17408 100644
--- a/sw/source/core/layout/atrfrm.cxx
+++ b/sw/source/core/layout/atrfrm.cxx
@@ -2877,12 +2877,8 @@ SwFlyFrameFormat::~SwFlyFrameFormat()
} while( nullptr != ( pLast = aIter.Next() ));
SwIterator<SwFlyDrawContact,SwFormat> a2ndIter( *this );
- SwFlyDrawContact* pC = a2ndIter.First();
- if( pC )
- do {
- delete pC;
- } while( nullptr != ( pC = a2ndIter.Next() ));
+ CallSwClientNotify(sw::DrawFrameFormatHint(sw::DrawFrameFormatHintId::DYING_FLYFRAMEFORMAT));
}
/// Creates the Frames if the format describes a paragraph-bound frame.
More information about the Libreoffice-commits
mailing list