diff options
Diffstat (limited to 'sd/source/ui')
-rw-r--r-- | sd/source/ui/func/fudraw.cxx | 21 | ||||
-rw-r--r-- | sd/source/ui/inc/fudraw.hxx | 1 |
2 files changed, 16 insertions, 6 deletions
diff --git a/sd/source/ui/func/fudraw.cxx b/sd/source/ui/func/fudraw.cxx index 99e63b280847..360aed0bfba4 100644 --- a/sd/source/ui/func/fudraw.cxx +++ b/sd/source/ui/func/fudraw.cxx @@ -93,11 +93,21 @@ bool FuDraw::MouseButtonDown(const MouseEvent& rMEvt) SetMouseButtonCode(rMEvt.GetButtons()); bool bReturn = false; - bDragHelpLine = false; - aMDPos = mpWindow->PixelToLogic( rMEvt.GetPosPixel() ); + // Check whether an image is selected + bIsImageSelected = false; + if (mpView->AreObjectsMarked()) + { + const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); + if (rMarkList.GetMarkCount() == 1) + { + SdrMark* pMark = rMarkList.GetMark(0); + bIsImageSelected = pMark->GetMarkedSdrObj()->GetObjIdentifier() == OBJ_GRAF; + } + } + if ( rMEvt.IsLeft() ) { FrameView* pFrameView = mpViewShell->GetFrameView(); @@ -217,7 +227,6 @@ bool FuDraw::MouseMove(const MouseEvent& rMEvt) Point aPos = mpWindow->PixelToLogic( rMEvt.GetPosPixel() ); bool bOrtho = false; - bool bRestricted = true; if (mpView->IsDragObj()) @@ -235,10 +244,10 @@ bool FuDraw::MouseMove(const MouseEvent& rMEvt) if (mpView->IsAction()) { // #i33136# - if(bRestricted && doConstructOrthogonal()) + if(bIsImageSelected || (bRestricted && doConstructOrthogonal())) { - // Restrict movement: - // rectangle->quadrat, ellipse->circle etc. + // Scale proportionally by default: + // rectangle->quadrat, ellipse->circle, Images etc. bOrtho = !rMEvt.IsShift(); } else diff --git a/sd/source/ui/inc/fudraw.hxx b/sd/source/ui/inc/fudraw.hxx index fb13e98ccc27..41efba206209 100644 --- a/sd/source/ui/inc/fudraw.hxx +++ b/sd/source/ui/inc/fudraw.hxx @@ -78,6 +78,7 @@ protected: bool bDragHelpLine; sal_uInt16 nHelpLine; bool bPermanent; + bool bIsImageSelected; }; |