summaryrefslogtreecommitdiff
path: root/sd
diff options
context:
space:
mode:
authorSamuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>2016-03-15 19:43:36 +0100
committerSamuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>2016-03-16 10:27:08 +0000
commite41d23abb03a0c5a5c50be290c2265513e178889 (patch)
treea3aeab7502c2073d7f6c5f89598512c5108f735a /sd
parenteca17faebdeb1a1dc305ffc9273e533eb880d4da (diff)
tdf#84953 Only resize proportionally when dragging on a corner
Change-Id: Iec4eda867216575e058fa673788d9345da05c872 Reviewed-on: https://gerrit.libreoffice.org/23291 Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> Tested-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
Diffstat (limited to 'sd')
-rw-r--r--sd/source/ui/func/fupoor.cxx13
1 files changed, 8 insertions, 5 deletions
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 ||