From a09eca6cc9f20b1301a03043a5a8dc6255b69b10a77b35f837447434148208f8 Mon Sep 17 00:00:00 2001 From: Hrvoje Senjan Date: Sun, 6 Mar 2016 01:41:50 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/plasma5-workspace?expand=0&rev=188 --- plasma-workspace-5.5.5.2.tar.xz | 3 - plasma-workspace-5.5.95.tar.xz | 3 + plasma5-workspace.spec | 13 +-- ...hell-disable-windowclosing-on-logout.patch | 52 ---------- xembedsniproxy-avoid-ghost-entry.patch | 95 ------------------- 5 files changed, 7 insertions(+), 159 deletions(-) delete mode 100644 plasma-workspace-5.5.5.2.tar.xz create mode 100644 plasma-workspace-5.5.95.tar.xz delete mode 100644 plasmashell-disable-windowclosing-on-logout.patch delete mode 100644 xembedsniproxy-avoid-ghost-entry.patch diff --git a/plasma-workspace-5.5.5.2.tar.xz b/plasma-workspace-5.5.5.2.tar.xz deleted file mode 100644 index 9ecd27f..0000000 --- a/plasma-workspace-5.5.5.2.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bed1e65d878b963dbbb85129c206dc70db71461de29c19e95b6053c9c4fe7b26 -size 7374560 diff --git a/plasma-workspace-5.5.95.tar.xz b/plasma-workspace-5.5.95.tar.xz new file mode 100644 index 0000000..618e9f3 --- /dev/null +++ b/plasma-workspace-5.5.95.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d433fb71b59742dc37c9ba5b5393da067af68018c1e96745e8449720b2f5a39a +size 7000736 diff --git a/plasma5-workspace.spec b/plasma5-workspace.spec index c62c116..d10422f 100644 --- a/plasma5-workspace.spec +++ b/plasma5-workspace.spec @@ -18,9 +18,9 @@ %bcond_without lang Name: plasma5-workspace -Version: 5.5.5.2 +Version: 5.5.95 Release: 0 -%define plasma_version 5.5.5 +%define plasma_version 5.5.95 Summary: The KDE Plasma Workspace Components License: GPL-2.0+ Group: System/GUI/KDE @@ -36,11 +36,8 @@ Patch1: create_kdehome.patch 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 -# PATCHES 201-300 and above are from upstream master/5.6 branch -Patch201: xembedsniproxy-avoid-ghost-entry.patch +# PATCHES 100-200 and above are from upstream 5.6 branch +# PATCHES 201-300 and above are from upstream master/5.7 branch BuildRequires: kf5-filesystem BuildRequires: update-desktop-files BuildRequires: cmake(KF5Activities) >= 5.15.0 @@ -209,8 +206,6 @@ workspace. Development files. %patch1 -p1 %patch2 -p1 %patch3 -p1 -%patch4 -p1 -%patch201 -p1 %build %cmake_kf5 -d build -- -DKDE4_COMMON_PAM_SERVICE=xdm -DKDE_DEFAULT_HOME=.kde4 -DCMAKE_INSTALL_LOCALEDIR=share/locale/kf5 diff --git a/plasmashell-disable-windowclosing-on-logout.patch b/plasmashell-disable-windowclosing-on-logout.patch deleted file mode 100644 index b5b36fb..0000000 --- a/plasmashell-disable-windowclosing-on-logout.patch +++ /dev/null @@ -1,52 +0,0 @@ -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); diff --git a/xembedsniproxy-avoid-ghost-entry.patch b/xembedsniproxy-avoid-ghost-entry.patch deleted file mode 100644 index 8ed6bcc..0000000 --- a/xembedsniproxy-avoid-ghost-entry.patch +++ /dev/null @@ -1,95 +0,0 @@ -From: Weng Xuetian -Date: Tue, 09 Feb 2016 02:56:59 +0000 -Subject: Check whether there is any BadWindow error before monitor the event -X-Git-Url: http://quickgit.kde.org/?p=plasma-workspace.git&a=commitdiff&h=829158f830555c031755c6d4348e684779264342 ---- -Check whether there is any BadWindow error before monitor the event - -The tray window itself may be destroyed before we start monitor the -event of it. Check the returned error and skip this window if BadWindow -happens. - -FIXED-IN: 5.6.0 -BUG: 358719 -REVIEW: 127014 ---- - - ---- a/xembed-sni-proxy/fdoselectionmanager.cpp -+++ b/xembed-sni-proxy/fdoselectionmanager.cpp -@@ -83,7 +83,7 @@ - m_selectionOwner->claim(false); - } - --void FdoSelectionManager::addDamageWatch(xcb_window_t client) -+bool FdoSelectionManager::addDamageWatch(xcb_window_t client) - { - qCDebug(SNIPROXY) << "adding damage watch for " << client; - -@@ -94,15 +94,27 @@ - m_damageWatches[client] = damageId; - xcb_damage_create(c, damageId, client, XCB_DAMAGE_REPORT_LEVEL_NON_EMPTY); - -- QScopedPointer attr(xcb_get_window_attributes_reply(c, attribsCookie, Q_NULLPTR)); -+ xcb_generic_error_t *error = Q_NULLPTR; -+ QScopedPointer attr(xcb_get_window_attributes_reply(c, attribsCookie, &error)); -+ QScopedPointer getAttrError(error); - uint32_t events = XCB_EVENT_MASK_STRUCTURE_NOTIFY; - if (!attr.isNull()) { - events = events | attr->your_event_mask; - } -+ // if window is already gone, there is no need to handle it. -+ if (getAttrError && getAttrError->error_code == XCB_WINDOW) { -+ return false; -+ } - // the event mask will not be removed again. We cannot track whether another component also needs STRUCTURE_NOTIFY (e.g. KWindowSystem). - // if we would remove the event mask again, other areas will break. -- xcb_change_window_attributes(c, client, XCB_CW_EVENT_MASK, &events); -- -+ const auto changeAttrCookie = xcb_change_window_attributes_checked(c, client, XCB_CW_EVENT_MASK, &events); -+ QScopedPointer changeAttrError(xcb_request_check(c, changeAttrCookie)); -+ // if window is gone by this point, it will be catched by eventFilter, so no need to check later errors. -+ if (changeAttrError && changeAttrError->error_code == XCB_WINDOW) { -+ return false; -+ } -+ -+ return true; - } - - bool FdoSelectionManager::nativeEventFilter(const QByteArray& eventType, void* message, long int* result) -@@ -130,6 +142,11 @@ - if (m_proxies[unmappedWId]) { - undock(unmappedWId); - } -+ } else if (responseType == XCB_DESTROY_NOTIFY) { -+ const auto destroyedWId = reinterpret_cast(ev)->window; -+ if (m_proxies[destroyedWId]) { -+ undock(destroyedWId); -+ } - } else if (responseType == m_damageEventBase + XCB_DAMAGE_NOTIFY) { - const auto damagedWId = reinterpret_cast(ev)->drawable; - const auto sniProx = m_proxies[damagedWId]; -@@ -153,8 +170,9 @@ - return; - } - -- addDamageWatch(winId); -- m_proxies[winId] = new SNIProxy(winId, this); -+ if (addDamageWatch(winId)) { -+ m_proxies[winId] = new SNIProxy(winId, this); -+ } - } - - void FdoSelectionManager::undock(xcb_window_t winId) - ---- a/xembed-sni-proxy/fdoselectionmanager.h -+++ b/xembed-sni-proxy/fdoselectionmanager.h -@@ -48,7 +48,7 @@ - - private: - void init(); -- void addDamageWatch(xcb_window_t client); -+ bool addDamageWatch(xcb_window_t client); - void dock(xcb_window_t embed_win); - void undock(xcb_window_t client); -