summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--svx/source/svdraw/svdobj.cxx6
1 files changed, 5 insertions, 1 deletions
diff --git a/svx/source/svdraw/svdobj.cxx b/svx/source/svdraw/svdobj.cxx
index 947f70a29f4e..e1257be84517 100644
--- a/svx/source/svdraw/svdobj.cxx
+++ b/svx/source/svdraw/svdobj.cxx
@@ -585,7 +585,11 @@ void SdrObject::AddListener(SfxListener& rListener)
{
ImpForcePlusData();
if (pPlusData->pBroadcast==nullptr) pPlusData->pBroadcast=new SfxBroadcaster;
- rListener.StartListening(*pPlusData->pBroadcast);
+
+ // SdrEdgeObj may be connected to same SdrObject on both ends so allow it
+ // to listen twice
+ SdrEdgeObj const*const pEdge(dynamic_cast<SdrEdgeObj const*>(&rListener));
+ rListener.StartListening(*pPlusData->pBroadcast, pEdge != nullptr);
}
void SdrObject::RemoveListener(SfxListener& rListener)