diff options
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.patch | 53 |
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(); |