summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTrent MacAlpine <tmacalp@gmail.com>2015-01-16 22:06:39 -0500
committerCaolán McNamara <caolanm@redhat.com>2015-01-20 21:05:18 +0000
commit5417429d0ef2d968b227dd2a533c1bf9cb0156b9 (patch)
tree2bbbf237c69f4f8380b76bc518aa199e39346398
parentb8faf6dfdc69d3feb26c9cacc688cdad16e3c714 (diff)
fdo#88339 Fixed Calc constrained image movement
fixed on master by commit# 7a4a68e2515fa54e041004cf63042c1ead00d576 Change-Id: Id4143e0a8410e6a9589f941c2bda83074eaf4844 Reviewed-on: https://gerrit.libreoffice.org/14022 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit fdff4b60b6d4beabadab15a4fceb60cb84e542d8) Reviewed-on: https://gerrit.libreoffice.org/14024 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Eike Rathke <erack@redhat.com>
-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;