diff --git a/widgets/freelayout.cpp b/widgets/freelayout.cpp index 38e2a031f..91d8ca027 100644 --- a/widgets/freelayout.cpp +++ b/widgets/freelayout.cpp @@ -83,7 +83,9 @@ LayoutItem * FreeLayout::takeAt(int i) void FreeLayout::setGeometry(const QRectF &geometry) { foreach (LayoutItem *child , d->children) { - child->setGeometry(QRectF(child->geometry().topLeft(),child->sizeHint())); + if (child->geometry().size() != child->sizeHint()) { + child->setGeometry(QRectF(child->geometry().topLeft(),child->sizeHint())); + } } d->geometry = geometry; } diff --git a/widgets/widget.cpp b/widgets/widget.cpp index f74d5b27d..1dfef9a7d 100644 --- a/widgets/widget.cpp +++ b/widgets/widget.cpp @@ -217,7 +217,7 @@ void Widget::setGeometry(const QRectF& geometry) } } - setPos(geometry.topLeft() - boundingRect().topLeft()); + setPos(geometry.topLeft()); update(); }