[Libreoffice-commits] core.git: sw/inc sw/source
Bjoern Michaelsen
bjoern.michaelsen at canonical.com
Sun Dec 4 08:58:55 UTC 2016
sw/inc/frmfmt.hxx | 13 +++++++++++++
sw/source/core/draw/dcontact.cxx | 11 +++++++++++
sw/source/core/layout/atrfrm.cxx | 8 ++++++--
3 files changed, 30 insertions(+), 2 deletions(-)
New commits:
commit c697aa80f4f0f5d86bb84dfe4d64d19f803bc990
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date: Thu Dec 1 00:53:02 2016 +0100
use proper message passing
Change-Id: I55ce4f6a9b033dc064beed8e70d35a5b5097846d
Reviewed-on: https://gerrit.libreoffice.org/31451
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 22db10b..66511d0 100644
--- a/sw/inc/frmfmt.hxx
+++ b/sw/inc/frmfmt.hxx
@@ -234,6 +234,19 @@ public:
//The DrawFrame-Format
+namespace sw
+{
+ enum class DrawFrameFormatHintId {
+ DYING
+ };
+ struct SW_DLLPUBLIC DrawFrameFormatHint final: SfxHint
+ {
+ DrawFrameFormatHintId m_eId;
+ DrawFrameFormatHint(DrawFrameFormatHintId eId) : m_eId(eId) {};
+ virtual ~DrawFrameFormatHint() override;
+ };
+}
+
class SW_DLLPUBLIC SwDrawFrameFormat: public SwFrameFormat
{
friend class SwDoc;
diff --git a/sw/source/core/draw/dcontact.cxx b/sw/source/core/draw/dcontact.cxx
index 94476aa..a80517e 100644
--- a/sw/source/core/draw/dcontact.cxx
+++ b/sw/source/core/draw/dcontact.cxx
@@ -1529,6 +1529,17 @@ void SwDrawContact::SwClientNotify(const SwModify& rMod, const SfxHint& rHint)
// #i51474#
GetAnchoredObj(nullptr)->ResetLayoutProcessBools();
}
+ else if (auto pDrawFrameFormatHint = dynamic_cast<const sw::DrawFrameFormatHint*>(&rHint))
+ {
+ switch(pDrawFrameFormatHint->m_eId)
+ {
+ case sw::DrawFrameFormatHintId::DYING:
+ delete this;
+ break;
+ default:
+ SAL_WARN("sw.core", "unhandled DrawFrameFormatHintId");
+ }
+ }
}
// #i26791#
diff --git a/sw/source/core/layout/atrfrm.cxx b/sw/source/core/layout/atrfrm.cxx
index 1a9168d..aaccfa7 100644
--- a/sw/source/core/layout/atrfrm.cxx
+++ b/sw/source/core/layout/atrfrm.cxx
@@ -3326,10 +3326,14 @@ SwHandleAnchorNodeChg::~SwHandleAnchorNodeChg()
IMPL_FIXEDMEMPOOL_NEWDEL( SwDrawFrameFormat )
+namespace sw
+{
+ DrawFrameFormatHint::~DrawFrameFormatHint() {}
+}
+
SwDrawFrameFormat::~SwDrawFrameFormat()
{
- SwContact *pContact = FindContactObj();
- delete pContact;
+ CallSwClientNotify(sw::DrawFrameFormatHint(sw::DrawFrameFormatHintId::DYING));
}
void SwDrawFrameFormat::MakeFrames()
More information about the Libreoffice-commits
mailing list