Hello community, here is the log from the commit of package plasma5-workspace for openSUSE:Factory checked in at 2016-03-02 14:20:29 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/plasma5-workspace (Old) and /work/SRC/openSUSE:Factory/.plasma5-workspace.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "plasma5-workspace" Changes: -------- --- /work/SRC/openSUSE:Factory/plasma5-workspace/plasma5-workspace.changes 2016-02-11 12:35:58.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.plasma5-workspace.new/plasma5-workspace.changes 2016-03-02 14:20:31.000000000 +0100 @@ -1,0 +2,23 @@ +Fri Feb 26 15:09:14 UTC 2016 - [email protected] + +- Update plasmashell-disable-windowclosing-on-logout.patch to + upstream version (but apply it for Qt >= 5.5.1) + +------------------------------------------------------------------- +Thu Feb 25 21:52:23 UTC 2016 - [email protected] + +- Added fix-session-switch.patch (kde#356945, boo#967538) + +------------------------------------------------------------------- +Fri Feb 19 18:22:22 UTC 2016 - [email protected] + +- Added plasmashell-disable-windowclosing-on-logout.patch: prevent + plasma from closing too early on logout resulting in an unusable + desktop if the logout is cancelled (boo#955280, kde#349805) + +------------------------------------------------------------------- +Tue Feb 16 22:00:36 UTC 2016 - [email protected] + +- Added kuiserver5_qApp.patch (boo#965922) + +------------------------------------------------------------------- New: ---- fix-session-switch.patch kuiserver5_qApp.patch plasmashell-disable-windowclosing-on-logout.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ plasma5-workspace.spec ++++++ --- /var/tmp/diff_new_pack.CuIrSh/_old 2016-03-02 14:20:32.000000000 +0100 +++ /var/tmp/diff_new_pack.CuIrSh/_new 2016-03-02 14:20:32.000000000 +0100 @@ -34,8 +34,13 @@ Patch1: create_kdehome.patch # PATCH-FIX_OPENSUSE fix-breeze-sddm-theme-with-many-users.patch [email protected] -- Asks for user/password and hide the user list when there's a large number of users Patch2: fix-breeze-sddm-theme-with-many-users.patch +# PATCH-FIX_OPENSUSE kuiserver5_qApp.patch -- kuiserver can't be a QCoreApplications as it uses QWidget +Patch3: kuiserver5_qApp.patch +# PATCH-FIX_OPENSUSE plasmashell-disable-windowclosing-on-logout.patch kde#349805 [email protected] -- Prevent plasma from closing too early on logout resulting in an unusable desktop if the logout is cancelled +Patch4: plasmashell-disable-windowclosing-on-logout.patch # PATCHES 100-200 and above are from upstream 5.5 branch Patch100: reset-the-model-on-list-always-shown-hide-change.patch +Patch101: fix-session-switch.patch # PATCHES 201-300 and above are from upstream master/5.6 branch BuildRequires: kf5-filesystem BuildRequires: update-desktop-files @@ -204,7 +209,10 @@ %patch0 -p1 %patch1 -p1 %patch2 -p1 +%patch3 -p1 +%patch4 -p1 %patch100 -p1 +%patch101 -p1 %build %cmake_kf5 -d build -- -DKDE4_COMMON_PAM_SERVICE=xdm -DKDE_DEFAULT_HOME=.kde4 -DCMAKE_INSTALL_LOCALEDIR=share/locale/kf5 ++++++ fix-session-switch.patch ++++++ From: Kai Uwe Broulik <[email protected]> Date: Thu, 25 Feb 2016 21:16:22 +0000 Subject: [User Switcher] Fix session switching when automatic screen locking is enabled X-Git-Url: http://quickgit.kde.org/?p=plasma-workspace.git&a=commitdiff&h=7a0096ba99d7a71ae9f45d7c0011d0ebb1eae23d --- [User Switcher] Fix session switching when automatic screen locking is enabled When automatic screen locking is enabled, we want to ensure the screen is fully locked before we switch sessions or go to the login screen to avoid brief exposure of the desktop when we return. This check happens asynchronously and because the User Switcher dialog closes immediately after issuing the switch request, the SessionsModel is already destroyed and the reply is never actually processed. BUG: 356945 FIXED-IN: 5.5.5 Differential Revision: https://phabricator.kde.org/D1020 --- --- a/components/sessionsprivate/sessionsmodel.cpp +++ b/components/sessionsprivate/sessionsmodel.cpp @@ -45,8 +45,10 @@ if (active) { if (m_pendingVt) { m_displayManager.switchVT(m_pendingVt); + emit switchedUser(m_pendingVt); } else if (m_pendingReserve) { m_displayManager.startReserve(); + emit startedNewSession(); } m_pendingVt = 0; @@ -78,6 +80,7 @@ if (!shouldLock) { m_displayManager.switchVT(vt); + emit switchedUser(vt); return; } @@ -85,6 +88,7 @@ if (locked) { // already locked, switch right away m_displayManager.switchVT(vt); + emit switchedUser(vt); } else { m_pendingReserve = false; m_pendingVt = vt; @@ -101,6 +105,7 @@ if (!shouldLock) { m_displayManager.startReserve(); + emit startedNewSession(); return; } @@ -108,6 +113,7 @@ if (locked) { // already locked, switch right away m_displayManager.startReserve(); + emit startedNewSession(); } else { m_pendingReserve = true; m_pendingVt = 0; --- a/components/sessionsprivate/sessionsmodel.h +++ b/components/sessionsprivate/sessionsmodel.h @@ -86,8 +86,10 @@ signals: void shouldLockChanged(); + void countChanged(); - void countChanged(); + void switchedUser(int vt); + void startedNewSession(); private: void checkScreenLocked(const std::function<void (bool)> &cb); --- a/lookandfeel/contents/userswitcher/UserSwitcher.qml +++ b/lookandfeel/contents/userswitcher/UserSwitcher.qml @@ -38,6 +38,11 @@ SessionsModel { id: sessionsModel + // the calls takes place asynchronously; if we were to dismiss the dialog right + // after startNewSession/switchUser we would be destroyed before the reply + // returned leaving us do nothing (Bug 356945) + onStartedNewSession: root.dismissed() + onSwitchedUser: root.dismissed() } Controls.Action { @@ -125,7 +130,6 @@ visible: sessionsModel.canStartNewSession onClicked: { sessionsModel.startNewSession(sessionsModel.shouldLock) - root.dismissed() } } @@ -148,7 +152,6 @@ visible: sessionsModel.count > 0 onClicked: { sessionsModel.switchUser(block.mainItem.selectedItem.vtNumber, sessionsModel.shouldLock) - root.dismissed() } Controls.Action { ++++++ kuiserver5_qApp.patch ++++++ diff --git a/kuiserver/CMakeLists.txt b/kuiserver/CMakeLists.txt index 0f7c29e..b9638aa 100644 --- a/kuiserver/CMakeLists.txt +++ b/kuiserver/CMakeLists.txt @@ -61,6 +61,7 @@ endif () target_link_libraries(kdeinit_kuiserver5 Qt5::DBus + Qt5::Widgets KF5::ConfigWidgets KF5::DBusAddons KF5::ItemViews diff --git a/kuiserver/main.cpp b/kuiserver/main.cpp index 3cc118a..9dd1ad3 100644 --- a/kuiserver/main.cpp +++ b/kuiserver/main.cpp @@ -28,6 +28,7 @@ #include <kdbusservice.h> #include <QCommandLineParser> +#include <QApplication> Q_LOGGING_CATEGORY(KUISERVER, "kuiserver") @@ -35,7 +36,7 @@ extern "C" Q_DECL_EXPORT int kdemain(int argc, char **argv) { QLoggingCategory::setFilterRules(QStringLiteral("kuiserver.debug = true")); - QCoreApplication app(argc, argv); + QApplication app(argc, argv); app.setApplicationName(QStringLiteral("kuiserver")); app.setApplicationVersion(QStringLiteral("2.0")); app.setOrganizationDomain(QStringLiteral("kde.org")); ++++++ plasmashell-disable-windowclosing-on-logout.patch ++++++ From: Andreas Hartmetz <[email protected]> Date: Sat, 20 Feb 2016 20:01:42 +0000 Subject: Disable fallback session management (requires Qt >= 5.6.0). X-Git-Url: http://quickgit.kde.org/?p=plasma-workspace.git&a=commitdiff&h=b5e814a7b2867914327c889794b1088027aaafd6 --- Disable fallback session management (requires Qt >= 5.6.0). This prevents processes from dying when session logout is cancelled. Session restore is not an issue in these, it's disabled anyway. --- --- a/klipper/main.cpp +++ b/klipper/main.cpp @@ -73,6 +73,9 @@ KAboutData::setApplicationData(aboutData); +#if QT_VERSION >= QT_VERSION_CHECK(5, 5, 1) + QGuiApplication::setFallbackSessionManagementEnabled(false); +#endif auto disableSessionManagement = [](QSessionManager &sm) { sm.setRestartHint(QSessionManager::RestartNever); }; --- a/krunner/main.cpp +++ b/krunner/main.cpp @@ -66,6 +66,9 @@ KAboutData::setApplicationData(aboutData); +#if QT_VERSION >= QT_VERSION_CHECK(5, 5, 1) + QGuiApplication::setFallbackSessionManagementEnabled(false); +#endif auto disableSessionManagement = [](QSessionManager &sm) { sm.setRestartHint(QSessionManager::RestartNever); }; diff --git a/shell/main.cpp b/shell/main.cpp index 49ea484..68cf9e9 100644 --- a/shell/main.cpp +++ b/shell/main.cpp @@ -133,6 +133,9 @@ int main(int argc, char *argv[]) }; QObject::connect(&app, &QGuiApplication::commitDataRequest, disableSessionManagement); QObject::connect(&app, &QGuiApplication::saveStateRequest, disableSessionManagement); +#if QT_VERSION >= QT_VERSION_CHECK(5, 5, 1) + QGuiApplication::setFallbackSessionManagementEnabled(false); +#endif ShellManager::s_crashes = cliOptions.value(crashOption).toInt(); ShellManager::s_forceWindowed = cliOptions.isSet(winOption);
