diff --git a/src/Mod/TechDraw/Gui/QGIViewBalloon.cpp b/src/Mod/TechDraw/Gui/QGIViewBalloon.cpp index a0439d6fd6..bb8d6a2b10 100644 --- a/src/Mod/TechDraw/Gui/QGIViewBalloon.cpp +++ b/src/Mod/TechDraw/Gui/QGIViewBalloon.cpp @@ -299,7 +299,17 @@ QVariant QGIViewBalloon::itemChange(GraphicsItemChange change, const QVariant& v balloonLabel->setSelected(false); } draw(); + return value; } + + if(change == ItemPositionChange && scene()) { + // QGIVBalloon doesn't really change position the way other views do. + // If we call QGIView::itemChange it will set the position to (0,0) instead of + // using the label's position, and the Balloon will be in the wrong place. + // QGIVDimension behaves the same way. + return QGraphicsItem::itemChange(change, value); + } + return QGIView::itemChange(change, value); }