From 7b607e92c9187f5e682b6bc1fcf53de0bb52e490 Mon Sep 17 00:00:00 2001 From: Robert Knight Date: Sat, 15 Sep 2007 04:16:11 +0000 Subject: [PATCH] Fix applets jumping around when they resize. Avoid calling setGeometry() on Applets in a FreeLayout that have not changed their size hint since the last update. svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=712674 --- widgets/freelayout.cpp | 4 +++- widgets/widget.cpp | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) 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(); }