SVN commit 1215441 by aseigo: remove the item pointer from all collections when it is deleted as it is also added to all of them when first added CCBUG:263565 M +5 -6 extender.cpp --- branches/KDE/4.6/kdelibs/plasma/extenders/extender.cpp #1215440:1215441 @@ -670,7 +670,7 @@ QObject::connect(item, SIGNAL(destroyed(Plasma::ExtenderItem*)), q, SLOT(extenderItemDestroyed(Plasma::ExtenderItem*))); attachedExtenderItems.append(item); q->itemHoverLeaveEvent(item); - pendingItems[item] = pos; + pendingItems.insert(item, pos); QTimer::singleShot(0, q, SLOT(delayItemAddedEvent())); } @@ -874,12 +874,11 @@ void ExtenderPrivate::extenderItemDestroyed(Plasma::ExtenderItem *item) { - if (item && attachedExtenderItems.contains(item)) { - removeExtenderItem(item); - } else if (pendingItems.contains(item)) { pendingItems.remove(item); - } else { - attachedExtenderItems.removeAll(item); + + if (attachedExtenderItems.contains(item)) { + // removeExtenderItem also removes the item from attachedExtenderItems + removeExtenderItem(item); } }