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 - hrvoje.senjan@gmail.com
+
+- 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 - hrvoje.senjan@gmail.com
+
+- Added fix-session-switch.patch (kde#356945, boo#967538)
+
+-------------------------------------------------------------------
+Fri Feb 19 18:22:22 UTC 2016 - wbauer@tmo.at
+
+- 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 - hrvoje.senjan@gmail.com
+
+- 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 alarrosa@suse.com -- 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 wbauer@tmo.at -- 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
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 &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
#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
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);