[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdelibs/plasma/extenders
From:       Marco Martin <notmart () gmail ! com>
Date:       2010-09-19 19:47:23
Message-ID: 20100919194723.60FBBAC7CB () svn ! kde ! org
[Download RAW message or body]

SVN commit 1177226 by mart:

delay itemAddedEvent at the end of the event loop:
if an item is added in a group right after creation, an itemAddedEvent shouldn't \
happen at all


 M  +10 -2     extender.cpp  
 M  +1 -0      extender.h  


--- trunk/KDE/kdelibs/plasma/extenders/extender.cpp #1177225:1177226
@@ -612,8 +612,7 @@
     QObject::connect(item, SIGNAL(destroyed(ExtenderItem*)), q, \
SLOT(extenderItemDestroyed(ExtenderItem*)));  attachedExtenderItems.append(item);
     q->itemHoverLeaveEvent(item);
-    q->itemAddedEvent(item, pos);
-    emit q->itemAttached(item);
+    QTimer::singleShot(0, q, SLOT(delayItemAddedEvent()));
 }
 
 void ExtenderPrivate::removeExtenderItem(ExtenderItem *item)
@@ -750,6 +749,15 @@
     }
 }
 
+void ExtenderPrivate::delayItemAddedEvent()
+{
+    while (!pendingItems.isEmpty()) {
+        QPair<Plasma::ExtenderItem *, QPointF> item = pendingItems.first();
+        q->itemAddedEvent(item.first, item.second);
+        pendingItems.pop_front();
+    }
+}
+
 void ExtenderPrivate::updateEmptyExtenderLabel()
 {
     if (q->isEmpty() && !emptyExtenderLabel &&
--- trunk/KDE/kdelibs/plasma/extenders/extender.h #1177225:1177226
@@ -303,6 +303,7 @@
     private:
         ExtenderPrivate *const d;
 
+        Q_PRIVATE_SLOT(d, void delayItemAddedEvent())
         Q_PRIVATE_SLOT(d, void extenderItemDestroyed(ExtenderItem *item))
 
         friend class ExtenderPrivate;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic