From e41d23abb03a0c5a5c50be290c2265513e178889 Mon Sep 17 00:00:00 2001 From: Samuel Mehrbrodt Date: Tue, 15 Mar 2016 19:43:36 +0100 Subject: tdf#84953 Only resize proportionally when dragging on a corner Change-Id: Iec4eda867216575e058fa673788d9345da05c872 Reviewed-on: https://gerrit.libreoffice.org/23291 Reviewed-by: Samuel Mehrbrodt Tested-by: Samuel Mehrbrodt --- sd/source/ui/func/fupoor.cxx | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'sd') diff --git a/sd/source/ui/func/fupoor.cxx b/sd/source/ui/func/fupoor.cxx index c1f498967472..b39c56910356 100644 --- a/sd/source/ui/func/fupoor.cxx +++ b/sd/source/ui/func/fupoor.cxx @@ -1124,23 +1124,26 @@ bool FuPoor::cancel() bool FuPoor::doConstructOrthogonal() const { // Check whether a media object is selected - bool bIsMediaSelected = false; + bool bResizeKeepRatio = false; // tdf#89758 Avoid interactive crop preview from being proportionally scaled by default. if (mpView->AreObjectsMarked() && mpView->GetDragMode() != SDRDRAG_CROP) { const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); if (rMarkList.GetMarkCount() == 1) { - SdrMark* pMark = rMarkList.GetMark(0); - sal_uInt16 aObjIdentifier = pMark->GetMarkedSdrObj()->GetObjIdentifier(); - bIsMediaSelected = aObjIdentifier == OBJ_GRAF || + sal_uInt16 aObjIdentifier = rMarkList.GetMark(0)->GetMarkedSdrObj()->GetObjIdentifier(); + bResizeKeepRatio = aObjIdentifier == OBJ_GRAF || aObjIdentifier == OBJ_MEDIA || aObjIdentifier == OBJ_OLE2; } } + SdrHdl* pHdl = mpView->PickHandle(aMDPos); + // Resize proportionally when media is selected and the user drags on a corner + if (pHdl) + bResizeKeepRatio = bResizeKeepRatio && pHdl->IsCornerHdl(); return ( - bIsMediaSelected || + bResizeKeepRatio || SID_DRAW_XLINE == nSlotId || SID_DRAW_CIRCLEARC == nSlotId || SID_DRAW_SQUARE == nSlotId || -- cgit