From b959d4a0148275ec7a12fada40c1621137511533 Mon Sep 17 00:00:00 2001 From: Rex Dieter Date: Fri, 1 Aug 2008 13:04:04 +0000 Subject: [PATCH] konq processes never terminate (kde#167826, rh#457526) --- kdelibs-4.1.0-kde#167826.patch | 51 ++++++++++++++++++++++++++++++++++ kdelibs.spec | 10 +++++-- 2 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 kdelibs-4.1.0-kde#167826.patch diff --git a/kdelibs-4.1.0-kde#167826.patch b/kdelibs-4.1.0-kde#167826.patch new file mode 100644 index 0000000..83fcd44 --- /dev/null +++ b/kdelibs-4.1.0-kde#167826.patch @@ -0,0 +1,51 @@ +--- branches/KDE/4.1/kdelibs/kdecore/kernel/kglobal.cpp 2008/08/01 00:12:03 840376 ++++ branches/KDE/4.1/kdelibs/kdecore/kernel/kglobal.cpp 2008/08/01 00:14:54 840377 +@@ -251,11 +251,14 @@ + + /** + * This counter indicates when to quit the application. +- * It starts at 1, is decremented in KMainWindow when the last window is closed, but +- * is incremented by operations that should outlive the last window closed +- * (e.g. a file copy for a file manager, or 'compacting folders on exit' for a mail client). ++ * It starts at 0, is incremented by KMainWindow, systray icons, running jobs, etc. ++ * and decremented again when those things are destroyed. ++ * This mechanism allows dialogs and jobs to outlive the last window closed ++ * e.g. a file copy for a file manager, or 'compacting folders on exit' for a mail client, ++ * the job progress widget with "keep open" checked, etc. + */ +-static int s_refCount = 1; ++static int s_refCount = 0; ++static bool s_allowQuit = false; + + void KGlobal::ref() + { +@@ -267,9 +270,14 @@ + { + --s_refCount; + //kDebug() << "KGlobal::deref() : refCount = " << s_refCount; +- if (s_refCount <= 0) { ++ if (s_refCount <= 0 && s_allowQuit) { + QCoreApplication::instance()->quit(); + } + } + ++void KGlobal::setAllowQuit(bool allowQuit) ++{ ++ s_allowQuit = allowQuit; ++} ++ + #undef PRIVATE_DATA +--- branches/KDE/4.1/kdelibs/kdeui/widgets/kmainwindow.cpp 2008/08/01 00:12:03 840376 ++++ branches/KDE/4.1/kdelibs/kdeui/widgets/kmainwindow.cpp 2008/08/01 00:14:54 840377 +@@ -226,6 +226,11 @@ + { + KGlobal::ref(); + ++ // We set allow quit to true, so when the refcounting reaches 0 the application instance will ++ // be exited. This has a similar purpose than setQuitOnLastWindowClosed (from ++ // QApplication), but it honors (de)refing from KGlobal. ++ KGlobal::setAllowQuit(true); ++ + q = _q; + + q->setAnimated(KGlobalSettings::graphicEffectsLevel() & KGlobalSettings::SimpleAnimationEffects); diff --git a/kdelibs.spec b/kdelibs.spec index 9846545..e7a995e 100644 --- a/kdelibs.spec +++ b/kdelibs.spec @@ -81,7 +81,10 @@ Patch18: kdelibs-4.0.99-kstandarddirs.patch # (and its followup) (#455130) Patch19: kdelibs-4.0.98-revert-kinit-regression.patch -# upstream patches +## upstream patches +# konq processes never terminate, +# http://bugs.kde.org/167825 , http://bugzilla.redhat.com/457526 +Patch100: kdelibs-4.1.0-kde#167826.patch BuildRequires: qt4-devel >= 4.4.0 Requires: qt4 >= %{_qt4_version} @@ -206,7 +209,9 @@ sed -i -e "s|@@VERSION_RELEASE@@|%{version}-%{release}|" kio/kio/kprotocolmanage %patch18 -p1 -b .kstandarddirs %patch19 -p0 -b .kinit-regression -# upstream patches +## upstream patches +%patch100 -p4 -b .kde#167826 + %build @@ -369,6 +374,7 @@ rm -rf %{buildroot} %changelog * Fri Aug 01 2008 Rex Dieter 4.1.0-4 - -devel: Requires: phonon-devel >= 4.2 (helps multilib upgrades) +- konq processes never terminate (kde#167826, rh#457526) * Wed Jul 30 2008 Rex Dieter 4.1.0-3 - (Build)Requires: soprano(-devel) >= 2.1 (#456827)