diff --git a/extenders/extendergroup.cpp b/extenders/extendergroup.cpp index 3135c9ba5..e04dc9742 100644 --- a/extenders/extendergroup.cpp +++ b/extenders/extendergroup.cpp @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include @@ -49,6 +50,10 @@ ExtenderGroup::ExtenderGroup(Extender *parent, uint groupId) connect(extender(), SIGNAL(itemDetached(Plasma::ExtenderItem*)), this, SLOT(removeItemFromGroup(Plasma::ExtenderItem*))); + //this isn't actually connected to anything, we will just check if it's running or not + d->resizeTimer = new QTimer(this); + d->resizeTimer->setSingleShot(true); + config().writeEntry("isGroup", true); setAcceptDrops(true); @@ -217,8 +222,11 @@ bool ExtenderGroup::eventFilter(QObject *watched, QEvent *event) { if (watched == d->childsWidget && event->type() == QEvent::GraphicsSceneResize) { static_cast(extender()->d->scrollWidget)->updateGeometry(); - static_cast(extender())->updateGeometry(); - extender()->d->adjustSize(); + if (!d->resizeTimer->isActive()) { + static_cast(extender())->updateGeometry(); + extender()->d->adjustSize(); + d->resizeTimer->start(0); + } } return ExtenderItem::eventFilter(watched, event); diff --git a/private/extendergroup_p.h b/private/extendergroup_p.h index 3d04f90e0..ad67961fd 100644 --- a/private/extendergroup_p.h +++ b/private/extendergroup_p.h @@ -20,6 +20,8 @@ #ifndef PLASMA_EXTENDERGROUPPRIVATE_H #define PLASMA_EXTENDERGROUPPRIVATE_H +class QTimer; + namespace Plasma { @@ -45,6 +47,7 @@ class ExtenderGroupPrivate Plasma::Svg *svg; QGraphicsWidget *childsWidget; QGraphicsLinearLayout *layout; + QTimer *resizeTimer; bool collapsed; bool autoHide; bool autoCollapse;