summaryrefslogtreecommitdiff
path: root/svx/source/unodraw/unoshape.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'svx/source/unodraw/unoshape.cxx')
-rw-r--r--svx/source/unodraw/unoshape.cxx17
1 files changed, 8 insertions, 9 deletions
diff --git a/svx/source/unodraw/unoshape.cxx b/svx/source/unodraw/unoshape.cxx
index 315503fa547b..e62262d6db5f 100644
--- a/svx/source/unodraw/unoshape.cxx
+++ b/svx/source/unodraw/unoshape.cxx
@@ -1018,17 +1018,18 @@ void SvxShape::Notify( SfxBroadcaster&, const SfxHint& rHint ) throw()
return;
// #i55919# SdrHintKind::ObjectChange is only interesting if it's for this object
-
- const SdrHint* pSdrHint = dynamic_cast<const SdrHint*>(&rHint);
- if (!pSdrHint ||
- ((pSdrHint->GetKind() != SdrHintKind::ModelCleared) &&
- (pSdrHint->GetKind() != SdrHintKind::ObjectChange || pSdrHint->GetObject() != GetSdrObject() )))
+ if (rHint.GetId() != SfxHintId::ThisIsAnSdrHint)
+ return;
+ SdrObject* pSdrObject(GetSdrObject());
+ const SdrHint* pSdrHint = static_cast<const SdrHint*>(&rHint);
+ if ((pSdrHint->GetKind() != SdrHintKind::ModelCleared) &&
+ (pSdrHint->GetKind() != SdrHintKind::ObjectChange || pSdrHint->GetObject() != pSdrObject ))
return;
- uno::Reference< uno::XInterface > xSelf( GetSdrObject()->getWeakUnoShape() );
+ uno::Reference< uno::XInterface > xSelf( pSdrObject->getWeakUnoShape() );
if( !xSelf.is() )
{
- EndListening(GetSdrObject()->getSdrModelFromSdrObject());
+ EndListening(pSdrObject->getSdrModelFromSdrObject());
mpSdrObjectWeakReference.reset(nullptr);
return;
}
@@ -1053,8 +1054,6 @@ void SvxShape::Notify( SfxBroadcaster&, const SfxHint& rHint ) throw()
if( bClearMe )
{
- SdrObject* pSdrObject(GetSdrObject());
-
if(!HasSdrObjectOwnership())
{
if(nullptr != pSdrObject)