summaryrefslogtreecommitdiff
path: root/sw/source/uibase/uiview/uivwimp.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/uibase/uiview/uivwimp.cxx')
-rw-r--r--sw/source/uibase/uiview/uivwimp.cxx13
1 files changed, 13 insertions, 0 deletions
diff --git a/sw/source/uibase/uiview/uivwimp.cxx b/sw/source/uibase/uiview/uivwimp.cxx
index 71f97dbbc9d1..ed0c3c68fcfc 100644
--- a/sw/source/uibase/uiview/uivwimp.cxx
+++ b/sw/source/uibase/uiview/uivwimp.cxx
@@ -65,6 +65,7 @@ SwView_Impl::~SwView_Impl()
m_xDispatchProviderInterceptor->Invalidate();
mxXTextView->Invalidate();
mxXTextView.clear();
+
if( mxScanEvtLstnr.is() )
mxScanEvtLstnr->ViewDestroyed();
if( mxClipEvtLstnr.is() )
@@ -72,6 +73,8 @@ SwView_Impl::~SwView_Impl()
mxClipEvtLstnr->AddRemoveListener( false );
mxClipEvtLstnr->ViewDestroyed();
}
+ DisconnectTransferableDDE();
+
#if HAVE_FEATURE_DBCONNECTIVITY && !ENABLE_FUZZERS
m_xConfigItem.reset();
#endif
@@ -215,6 +218,16 @@ void SwView_Impl::Invalidate()
}
}
+void SwView_Impl::DisconnectTransferableDDE()
+{
+ for (const auto& xTransferable: mxTransferables)
+ {
+ rtl::Reference<SwTransferable> pTransferable = xTransferable.get();
+ if(pTransferable)
+ pTransferable->DisconnectDDE();
+ }
+}
+
void SwView_Impl::AddTransferable(SwTransferable& rTransferable)
{
//prevent removing of the non-referenced SwTransferable