diff --git a/hurricane/src/hurricane/Horizontal.cpp b/hurricane/src/hurricane/Horizontal.cpp index 133dcd26..a342922b 100644 --- a/hurricane/src/hurricane/Horizontal.cpp +++ b/hurricane/src/hurricane/Horizontal.cpp @@ -125,6 +125,16 @@ void Horizontal::translate(const DbU::Unit& dx, const DbU::Unit& dy) invalidate(true); _y += dy; } + if (dx != 0) { + if (!getSourceHook()->isAttached()) { + invalidate(true); + _dxSource += dx; + } + if (!getTargetHook()->isAttached()) { + invalidate(true); + _dxTarget += dx; + } + } } void Horizontal::setY(const DbU::Unit& y) diff --git a/hurricane/src/hurricane/Vertical.cpp b/hurricane/src/hurricane/Vertical.cpp index 3c40aef7..3a72b3b9 100644 --- a/hurricane/src/hurricane/Vertical.cpp +++ b/hurricane/src/hurricane/Vertical.cpp @@ -128,6 +128,16 @@ void Vertical::translate(const DbU::Unit& dx, const DbU::Unit& dy) invalidate(true); _x += dx; } + if (dy != 0) { + if (!getSourceHook()->isAttached()) { + invalidate(true); + _dySource += dy; + } + if (!getTargetHook()->isAttached()) { + invalidate(true); + _dyTarget += dy; + } + } } void Vertical::setX(const DbU::Unit& x)