summaryrefslogtreecommitdiffstats
path: root/redhat/kdelibs/kdelibs-3.5.13-prevent_xdg_autostart_multiple_times.patch
diff options
context:
space:
mode:
Diffstat (limited to 'redhat/kdelibs/kdelibs-3.5.13-prevent_xdg_autostart_multiple_times.patch')
-rw-r--r--redhat/kdelibs/kdelibs-3.5.13-prevent_xdg_autostart_multiple_times.patch53
1 files changed, 53 insertions, 0 deletions
diff --git a/redhat/kdelibs/kdelibs-3.5.13-prevent_xdg_autostart_multiple_times.patch b/redhat/kdelibs/kdelibs-3.5.13-prevent_xdg_autostart_multiple_times.patch
new file mode 100644
index 000000000..6a5a8c9d4
--- /dev/null
+++ b/redhat/kdelibs/kdelibs-3.5.13-prevent_xdg_autostart_multiple_times.patch
@@ -0,0 +1,53 @@
+commit e9f29cfb2a76657f150ec585fa6775f372d7e460
+Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
+Date: 1343238048 -0500
+
+ Prevent XDG autostart files from starting multiple times
+ This resolves Bug 1096
+
+diff --git a/kinit/autostart.cpp b/kinit/autostart.cpp
+index 4880039..c7feb17 100644
+--- a/kinit/autostart.cpp
++++ b/kinit/autostart.cpp
+@@ -214,6 +214,32 @@ AutoStart::loadAutoStartList()
+ }
+ m_startList->append(item);
+ }
++
++ // Check for duplicate entries and remove if found
++ TQPtrListIterator<AutoStartItem> it1(*m_startList);
++ TQPtrListIterator<AutoStartItem> it2(*m_startList);
++ AutoStartItem *item1;
++ AutoStartItem *item2;
++ while ((item1 = it1.current()) != 0) {
++ bool dupfound1 = false;
++ it2.toFirst();
++ while ((item2 = it2.current()) != 0) {
++ bool dupfound2 = false;
++ if (item2 != item1) {
++ if (item1->service == item2->service) {
++ m_startList->removeRef(item2);
++ dupfound1 = true;
++ dupfound2 = true;
++ }
++ }
++ if (!dupfound2) {
++ ++it2;
++ }
++ }
++ if (!dupfound1) {
++ ++it1;
++ }
++ }
+ }
+
+ TQString
+@@ -241,7 +267,7 @@ AutoStart::startService()
+ }
+ m_started.remove(m_started.begin());
+ }
+-
++
+ // Check for items that don't depend on anything
+ AutoStartItem *item;
+ for(item = m_startList->first();