diff options
author | Christian Lippka ORACLE <christian.lippka@oracle.com> | 2010-12-08 10:56:28 +0100 |
---|---|---|
committer | Christian Lippka ORACLE <christian.lippka@oracle.com> | 2010-12-08 10:56:28 +0100 |
commit | 041132b03eec68fae2fa73775a8085a754bf98ed (patch) | |
tree | 3ac6758d15d823d7fd0dac43f9ab09c51c70b620 /svx/source/svdraw/svddrgmt.cxx | |
parent | 862b6214064cbde1e9fa5e5a93c2e49c17086dd5 (diff) |
impressdefaults1: #i112002# catching some null pointer access during double clicking on shapes
Diffstat (limited to 'svx/source/svdraw/svddrgmt.cxx')
-rw-r--r-- | svx/source/svdraw/svddrgmt.cxx | 38 |
1 files changed, 24 insertions, 14 deletions
diff --git a/svx/source/svdraw/svddrgmt.cxx b/svx/source/svdraw/svddrgmt.cxx index d04bf8851795..2e7f2b09f50e 100644 --- a/svx/source/svdraw/svddrgmt.cxx +++ b/svx/source/svdraw/svddrgmt.cxx @@ -902,6 +902,9 @@ void SdrDragMovHdl::TakeSdrDragComment(XubString& rStr) const bool SdrDragMovHdl::BeginSdrDrag() { + if( !GetDragHdl() ) + return false; + DragStat().Ref1()=GetDragHdl()->GetPos(); DragStat().SetShown(!DragStat().IsShown()); SdrHdlKind eKind=GetDragHdl()->GetKind(); @@ -931,7 +934,7 @@ void SdrDragMovHdl::MoveSdrDrag(const Point& rNoSnapPnt) { Point aPnt(rNoSnapPnt); - if (DragStat().CheckMinMoved(rNoSnapPnt)) + if ( GetDragHdl() && DragStat().CheckMinMoved(rNoSnapPnt)) { if (GetDragHdl()->GetKind()==HDL_MIRX) { @@ -1042,22 +1045,25 @@ void SdrDragMovHdl::MoveSdrDrag(const Point& rNoSnapPnt) bool SdrDragMovHdl::EndSdrDrag(bool /*bCopy*/) { - switch (GetDragHdl()->GetKind()) + if( GetDragHdl() ) { - case HDL_REF1: - Ref1()=DragStat().GetNow(); - break; + switch (GetDragHdl()->GetKind()) + { + case HDL_REF1: + Ref1()=DragStat().GetNow(); + break; - case HDL_REF2: - Ref2()=DragStat().GetNow(); - break; + case HDL_REF2: + Ref2()=DragStat().GetNow(); + break; - case HDL_MIRX: - Ref1()+=DragStat().GetNow()-DragStat().GetStart(); - Ref2()+=DragStat().GetNow()-DragStat().GetStart(); - break; + case HDL_MIRX: + Ref1()+=DragStat().GetNow()-DragStat().GetStart(); + Ref2()+=DragStat().GetNow()-DragStat().GetStart(); + break; - default: break; + default: break; + } } return true; @@ -1066,7 +1072,11 @@ bool SdrDragMovHdl::EndSdrDrag(bool /*bCopy*/) void SdrDragMovHdl::CancelSdrDrag() { Hide(); - GetDragHdl()->SetPos(DragStat().GetRef1()); + + SdrHdl* pHdl = GetDragHdl(); + if( pHdl ) + pHdl->SetPos(DragStat().GetRef1()); + SdrHdl* pHM = GetHdlList().GetHdl(HDL_MIRX); if(pHM) |