diff --git a/src/libs/vtools/tools/backgroundimage/vbackgroundimagecontrols.cpp b/src/libs/vtools/tools/backgroundimage/vbackgroundimagecontrols.cpp index 96ab447ae..758a98ccd 100644 --- a/src/libs/vtools/tools/backgroundimage/vbackgroundimagecontrols.cpp +++ b/src/libs/vtools/tools/backgroundimage/vbackgroundimagecontrols.cpp @@ -178,7 +178,10 @@ void VBackgroundImageControls::UpdateControls() prepareGeometryChange(); m_image = m_doc->GetBackgroundImage(m_id); - m_originPos = m_image.BoundingRect().center(); + if(not m_customOrigin) + { + m_originPos = m_image.BoundingRect().center(); + } } //--------------------------------------------------------------------------------------------------------------------- @@ -394,6 +397,8 @@ void VBackgroundImageControls::mousePressEvent(QGraphicsSceneMouseEvent *event) //--------------------------------------------------------------------------------------------------------------------- void VBackgroundImageControls::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { + m_customOrigin = true; + if (m_tranformationType == BITransformationType::Scale) { ScaleImage(event); @@ -426,8 +431,10 @@ void VBackgroundImageControls::mouseReleaseEvent(QGraphicsSceneMouseEvent *event setCursor(VAbstractValApplication::VApp()->getSceneView()->viewport()->cursor()); } + m_customOrigin = false; m_controlsVisible = true; m_allowChangeMerge = false; + m_originSaved = false; if (m_tranformationType == BITransformationType::Scale) { diff --git a/src/libs/vtools/tools/backgroundimage/vbackgroundimagecontrols.h b/src/libs/vtools/tools/backgroundimage/vbackgroundimagecontrols.h index 848cf92fe..d69e2db69 100644 --- a/src/libs/vtools/tools/backgroundimage/vbackgroundimagecontrols.h +++ b/src/libs/vtools/tools/backgroundimage/vbackgroundimagecontrols.h @@ -131,6 +131,8 @@ private: bool m_showOrigin{false}; QPointF m_originPos{}; + bool m_originSaved{false}; + bool m_customOrigin{false}; void InitPixmaps();