Sophie

Sophie

distrib > Fedora > 16 > i386 > by-pkgid > 75624462519d2dee21813e9401ac8229 > files > 32

kdebase-workspace-4.7.4-9.fc16.src.rpm

diff -ur kde-workspace-4.7.4.orig/plasma/generic/dataengines/tasks/tasksengine.cpp kde-workspace-4.7.4/plasma/generic/dataengines/tasks/tasksengine.cpp
--- kde-workspace-4.7.4.orig/plasma/generic/dataengines/tasks/tasksengine.cpp	2012-02-11 11:15:53.825161848 -0600
+++ kde-workspace-4.7.4/plasma/generic/dataengines/tasks/tasksengine.cpp	2012-02-11 11:16:34.377165435 -0600
@@ -80,7 +80,12 @@
 void TasksEngine::startupRemoved(StartupPtr startup)
 {
     Q_ASSERT(startup);
-    removeSource(getStartupName(startup));
+    // there is an event loop ref counting bug in Qt that prevents deleteLater() from working
+    // properly, so we need to remove the source our selves with a single shot
+    //removeSource(getStartupName(startup));
+    if (Plasma::DataContainer *container = containerForSource(getStartupName(startup))) {
+        QTimer::singleShot(0, container, SLOT(deleteLater()));
+    }
 }
 
 void TasksEngine::taskAdded(TaskPtr task)
@@ -92,7 +97,12 @@
 void TasksEngine::taskRemoved(TaskPtr task)
 {
     Q_ASSERT(task);
-    removeSource(getTaskName(task));
+    // there is an event loop ref counting bug in Qt that prevents deleteLater() from working
+    // properly, so we need to remove the source our selves with a single shot
+    //removeSource(getTaskName(task));
+    if (Plasma::DataContainer *container = containerForSource(getTaskName(task))) {
+        QTimer::singleShot(0, container, SLOT(deleteLater()));
+    }
 }
 
 void TasksEngine::addStartup(StartupPtr startup)