Hello community, here is the log from the commit of package kdelibs4support for openSUSE:Factory checked in at 2016-02-24 18:54:15 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kdelibs4support (Old) and /work/SRC/openSUSE:Factory/.kdelibs4support.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kdelibs4support" Changes: -------- --- /work/SRC/openSUSE:Factory/kdelibs4support/kdelibs4support.changes 2016-01-20 09:42:35.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.kdelibs4support.new/kdelibs4support.changes 2016-02-24 18:54:16.000000000 +0100 @@ -1,0 +2,18 @@ +Mon Feb 22 16:16:03 UTC 2016 - [email protected] + +- Add and enable use-setFallbackSessionManagementEnabled-API-with-5.5.1.patch + on 42.1 Leap only, for now (kde#354724, boo#955280) + +------------------------------------------------------------------- +Wed Feb 17 22:07:24 UTC 2016 - [email protected] + +- Added fix-session-saving.patch (kde#354724, boo#955280) + +------------------------------------------------------------------- +Sat Feb 6 18:00:48 UTC 2016 - [email protected] + +- Update to 5.19.0 (boo#967668) + * For more details please see: + https://www.kde.org/announcements/kde-frameworks-5.19.0.php + +------------------------------------------------------------------- Old: ---- kdelibs4support-5.18.0.tar.xz New: ---- fix-session-saving.patch kdelibs4support-5.19.0.tar.xz use-setFallbackSessionManagementEnabled-API-with-5.5.1.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kdelibs4support.spec ++++++ --- /var/tmp/diff_new_pack.mz8tds/_old 2016-02-24 18:54:17.000000000 +0100 +++ /var/tmp/diff_new_pack.mz8tds/_new 2016-02-24 18:54:17.000000000 +0100 @@ -18,9 +18,9 @@ %bcond_without lang %define lname libKF5KDELibs4Support5 -%define _tar_path 5.18 +%define _tar_path 5.19 Name: kdelibs4support -Version: 5.18.0 +Version: 5.19.0 Release: 0 %define kf5_version %{version} BuildRequires: NetworkManager-devel @@ -76,6 +76,11 @@ Url: http://www.kde.org Source: http://download.kde.org/stable/frameworks/%{_tar_path}/portingAids/%{name}-%{version}.tar.xz Source1: baselibs.conf +# PATCH-FIX-UPSTREAM fix-session-saving.patch -- kde#354724, boo#955280 +Patch0: fix-session-saving.patch +# PATCH-FIX-UPSTREAM use-setFallbackSessionManagementEnabled-API-with-5.5.1.patch -- We can enable usage of setFallbackSessionManagementEnabled function +# with Qt 5.5.1, as we have the qtbase patch backported. For now only apppy patch on 42.1 Leap, as TW doesn't have that patch yet -- #354724, boo#955280 +Patch1: use-setFallbackSessionManagementEnabled-API-with-5.5.1.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -188,6 +193,10 @@ %lang_package %prep %setup -q +%patch0 -p1 +%if 0%{?suse_version} == 1315 && 0%{?is_opensuse} +%patch1 -p1 +%endif %build %cmake_kf5 -d build ++++++ fix-session-saving.patch ++++++ >From 58e49487aece3de19aae90bbb9b80cd5aab94d04 Mon Sep 17 00:00:00 2001 From: Andreas Hartmetz <[email protected]> Date: Fri, 19 Feb 2016 19:49:01 +0100 Subject: [PATCH 2/2] Fix session management for KApplication based applications. - Call QGuiApplication::setFallbackSessionManagementEnabled(false) to prevent premature application exit - Wire up the saveStateRequest() and commitDataRequest() signals to the appropriate methods that had to be turned into slots first. Those methods were never even called, they were not ported properly. - Cancel logout when the user decides to do that. A comment in the code was not sufficient to do that. (?!?!) CCBUG: 354724 --- src/kdeui/kapplication.cpp | 17 ++++++++++++++++- src/kdeui/kapplication.h | 29 +++++++++++++++-------------- 2 files changed, 31 insertions(+), 15 deletions(-) diff --git a/src/kdeui/kapplication.cpp b/src/kdeui/kapplication.cpp index d78212a..54fd1de 100644 --- a/src/kdeui/kapplication.cpp +++ b/src/kdeui/kapplication.cpp @@ -380,6 +380,9 @@ void KApplicationPrivate::init(bool GUIenabled) parseCommandLine(); QApplication::setDesktopSettingsAware(false); +#if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0) + QGuiApplication::setFallbackSessionManagementEnabled(false); +#endif #if HAVE_X11 isX11 = (QGuiApplication::platformName() == QStringLiteral("xcb")); @@ -472,6 +475,12 @@ void KApplicationPrivate::init(bool GUIenabled) q->connect(KToolInvocation::self(), SIGNAL(kapplication_hook(QStringList&,QByteArray&)), q, SLOT(_k_slot_KToolInvocation_hook(QStringList&,QByteArray&))); + q->connect(q, SIGNAL(commitDataRequest(QSessionManager&)), + q, SLOT(commitData(QSessionManager&))); + q->connect(q, SIGNAL(saveStateRequest(QSessionManager&)), + q, SLOT(saveState(QSessionManager&))); + + #ifdef Q_OS_MAC // This is a QSystemTrayIcon instead of K* because we can't be sure q is a QWidget QSystemTrayIcon *trayIcon; //krazy:exclude=qclasses @@ -577,11 +586,13 @@ void KApplication::commitData(QSessionManager &sm) continue; } + // leave KMainWindows alone because they are handled by KMWSessionManager if (!w->isHidden() && !w->inherits("KMainWindow")) { QCloseEvent e; sendEvent(w, &e); if (!e.isAccepted()) { - break; //canceled + canceled = true; + break; } donelist.append(w); @@ -597,6 +608,10 @@ void KApplication::commitData(QSessionManager &sm) } else { sm.setRestartHint(QSessionManager::RestartIfRunning); } + + if (canceled) { + sm.cancel(); + } d->session_save = false; } diff --git a/src/kdeui/kapplication.h b/src/kdeui/kapplication.h index 2231084..c9b1cb6 100644 --- a/src/kdeui/kapplication.h +++ b/src/kdeui/kapplication.h @@ -155,20 +155,6 @@ public: void enableSessionManagement(); /** - * Reimplemented for internal purposes, mainly the highlevel - * handling of session management with KSessionManager. - * @internal - */ - void commitData(QSessionManager &sm); - - /** - * Reimplemented for internal purposes, mainly the highlevel - * handling of session management with KSessionManager. - * @internal - */ - void saveState(QSessionManager &sm); - - /** * @deprecated since 5.0, use QGuiApplication::isSavingSession() * * Returns true if the application is currently saving its session @@ -359,6 +345,21 @@ public Q_SLOTS: */ Q_SCRIPTABLE void updateUserTimestamp(int time = 0); + /** + * Slot connected to QGuiApplication::commitDataRequest() to implement highlevel + * handling of session management with KSessionManager. + * @internal + */ + void commitData(QSessionManager &sm); + + /** + * Slot connected to QGuiApplication::saveStateRequest() to implement highlevel + * handling of session management with KSessionManager. + * @internal + */ + void saveState(QSessionManager &sm); + + // D-Bus Q_SLOTS: Q_SCRIPTABLE void reparseConfiguration(); Q_SCRIPTABLE void quit(); -- 2.6.2 ++++++ kdelibs4support-5.18.0.tar.xz -> kdelibs4support-5.19.0.tar.xz ++++++ ++++ 11122 lines of diff (skipped) ++++++ use-setFallbackSessionManagementEnabled-API-with-5.5.1.patch ++++++ diff --git a/src/kdeui/kapplication.cpp b/src/kdeui/kapplication.cpp index 54fd1de..631dc2b 100644 --- a/src/kdeui/kapplication.cpp +++ b/src/kdeui/kapplication.cpp @@ -380,7 +380,7 @@ void KApplicationPrivate::init(bool GUIenabled) parseCommandLine(); QApplication::setDesktopSettingsAware(false); -#if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0) +#if QT_VERSION >= QT_VERSION_CHECK(5, 5, 1) QGuiApplication::setFallbackSessionManagementEnabled(false); #endif
