summaryrefslogtreecommitdiff
path: root/sc/source
diff options
context:
space:
mode:
Diffstat (limited to 'sc/source')
-rw-r--r--sc/source/ui/drawfunc/fupoor.cxx19
1 files changed, 16 insertions, 3 deletions
diff --git a/sc/source/ui/drawfunc/fupoor.cxx b/sc/source/ui/drawfunc/fupoor.cxx
index 979e7b6e2cec..d66a293bcacf 100644
--- a/sc/source/ui/drawfunc/fupoor.cxx
+++ b/sc/source/ui/drawfunc/fupoor.cxx
@@ -324,17 +324,30 @@ void FuPoor::ImpForceQuadratic(Rectangle& rRect)
}
}
-// #i33136#
+// #i33136# fdo#88339
bool FuPoor::doConstructOrthogonal() const
{
- // Check whether an image is selected -> they should scale proportionally
+ // Detect whether we're moving an object or resizing.
+ bool bIsMoveMode = false;
+ if (pView->IsDragObj())
+ {
+ const SdrHdl* pHdl = pView->GetDragStat().GetHdl();
+ if (!pHdl || (!pHdl->IsCornerHdl() && !pHdl->IsVertexHdl()))
+ {
+ bIsMoveMode = true;
+ }
+ }
+
+ // Detect image and resize proportionally, but don't constrain movement by default
if (pView->AreObjectsMarked())
{
const SdrMarkList& rMarkList = pView->GetMarkedObjectList();
if (rMarkList.GetMarkCount() == 1)
{
- if (rMarkList.GetMark(0)->GetMarkedSdrObj()->GetObjIdentifier() == OBJ_GRAF)
+ if (rMarkList.GetMark(0)->GetMarkedSdrObj()->GetObjIdentifier() == OBJ_GRAF && !bIsMoveMode)
+ {
return true;
+ }
}
}
return false;