diff options
-rw-r--r-- | svx/source/svdraw/svdotxtr.cxx | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/svx/source/svdraw/svdotxtr.cxx b/svx/source/svdraw/svdotxtr.cxx index 8943cbb2f8f2..7ed97774119d 100644 --- a/svx/source/svdraw/svdotxtr.cxx +++ b/svx/source/svdraw/svdotxtr.cxx @@ -40,6 +40,18 @@ using namespace com::sun::star; +namespace +{ + +gfx::Tuple2DL createTupleFromPoint(Point const& rPoint, gfx::LengthUnit eUnit = gfx::LengthUnit::hmm) +{ + auto x = gfx::Length::from(eUnit, rPoint.X()); + auto y = gfx::Length::from(eUnit, rPoint.Y()); + return gfx::Tuple2DL(x, y); +} + +} // end anonymous + void SdrTextObj::NbcSetSnapRect(const tools::Rectangle& rRect) { if (maGeo.m_nRotationAngle || maGeo.m_nShearAngle) @@ -95,8 +107,15 @@ Degree100 SdrTextObj::GetShearAngle(bool /*bVertical*/) const void SdrTextObj::NbcMove(const Size& rSize) { - moveRectangle(rSize.Width(), rSize.Height()); - moveOutRectangle(rSize.Width(), rSize.Height()); + gfx::Tuple2DL aDelta = createTupleFromPoint(Point(rSize.Width(), rSize.Height()), getSdrModelFromSdrObject().getUnit()); + gfx::Length xDelta = aDelta.getX(); + gfx::Length yDelta = aDelta.getY(); + + if (xDelta == 0_emu && yDelta == 0_emu) + return; + + maRectangleRange.shift(xDelta, yDelta); + m_aOutterRange.shift(xDelta, yDelta); maSnapRect.Move(rSize); SetBoundAndSnapRectsDirty(true); } @@ -186,19 +205,6 @@ void SdrTextObj::NbcResize(const Point& rRef, const Fraction& xFact, const Fract SetBoundAndSnapRectsDirty(); } -namespace -{ - -gfx::Tuple2DL createTupleFromPoint(Point const& rPoint, gfx::LengthUnit eUnit = gfx::LengthUnit::hmm) -{ - auto x = gfx::Length::from(eUnit, rPoint.X()); - auto y = gfx::Length::from(eUnit, rPoint.Y()); - return gfx::Tuple2DL(x, y); -} - -} // end anonymous - - void SdrTextObj::NbcRotate(const Point& rRef, Degree100 nAngle, double sn, double cs) { SetGlueReallyAbsolute(true); |