diff options
-rw-r--r-- | sw/source/ui/docvw/edtwin.cxx | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/sw/source/ui/docvw/edtwin.cxx b/sw/source/ui/docvw/edtwin.cxx index 4ab955565532..af7987532ee4 100644 --- a/sw/source/ui/docvw/edtwin.cxx +++ b/sw/source/ui/docvw/edtwin.cxx @@ -4012,15 +4012,24 @@ void SwEditWin::MouseMove(const MouseEvent& _rMEvt) if( bIsDocReadOnly ) break; + bool bIsSelectionGfx = rSh.GetSelectionType() & nsSelectionType::SEL_GRF; + bool bisResize = eSdrMoveHdl != HDL_MOVE; + if ( rMEvt.IsShift() ) { - pSdrView->SetOrtho(true); - pSdrView->SetAngleSnapEnabled(sal_True); + pSdrView->SetAngleSnapEnabled(!bIsSelectionGfx); + if (bisResize) + pSdrView->SetOrtho(!bIsSelectionGfx); + else + pSdrView->SetOrtho(true); } else { - pSdrView->SetOrtho(false); - pSdrView->SetAngleSnapEnabled(sal_False); + pSdrView->SetAngleSnapEnabled(bIsSelectionGfx); + if (bisResize) + pSdrView->SetOrtho(bIsSelectionGfx); + else + pSdrView->SetOrtho(false); } rSh.Drag( &aDocPt, rMEvt.IsShift() ); |