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);

Reply via email to