diff --git a/0003-Assing-first-screen-if-screen-is-null.patch b/0003-Assing-first-screen-if-screen-is-null.patch new file mode 100644 index 0000000..8c6c953 --- /dev/null +++ b/0003-Assing-first-screen-if-screen-is-null.patch @@ -0,0 +1,29 @@ +From 71e465210d5491a5805a26a855232bc103ab0215 Mon Sep 17 00:00:00 2001 +From: Felipe Kinoshita +Date: Fri, 25 Jun 2021 00:56:39 -0300 +Subject: [PATCH 3/7] Assing first screen if `screen` is null + +BUG: 438277 + + +(cherry picked from commit 60ab32584b3322b384342e1bb784c07123d4ad7b) +--- + klipper/klipperpopup.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/klipper/klipperpopup.cpp b/klipper/klipperpopup.cpp +index 390235b4d..0eacc18e2 100644 +--- a/klipper/klipperpopup.cpp ++++ b/klipper/klipperpopup.cpp +@@ -86,7 +86,7 @@ KlipperPopup::KlipperPopup(History *history) + QRect geometry = windowInfo.geometry(); + QScreen *screen = QGuiApplication::screenAt(geometry.center()); + if (screen == nullptr) { +- return; ++ screen = QGuiApplication::screens()[0]; + } + int menuHeight = (screen->geometry().height()) * 3 / 4; + int menuWidth = (screen->geometry().width()) * 1 / 3; +-- +2.31.1 + diff --git a/0005-xembed-sni-proxy-Add-Menu-property.patch b/0005-xembed-sni-proxy-Add-Menu-property.patch new file mode 100644 index 0000000..9d4fb27 --- /dev/null +++ b/0005-xembed-sni-proxy-Add-Menu-property.patch @@ -0,0 +1,47 @@ +From 4ade115a1248cc3c1128a3d10982429ab76cf8f8 Mon Sep 17 00:00:00 2001 +From: David Redondo +Date: Mon, 28 Jun 2021 15:56:55 +0200 +Subject: [PATCH 5/7] xembed-sni-proxy: Add Menu property + +Because we did not have this property the adaptor used a default +constructed empty path. An empty path is invalid though and Qt +would refuse to marshall it. +Unconditionally advertise '/' as the menu path even though we don't have +one. Callers looking for a menu there will receive an error that there's +not the interface that they expected at the path. +BUG:439229 +FIXED-IN:5.22.3 + + +(cherry picked from commit b9de2c8546874efcc993913bd55d0ef252b866a8) +--- + xembed-sni-proxy/sniproxy.h | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/xembed-sni-proxy/sniproxy.h b/xembed-sni-proxy/sniproxy.h +index 732eb3e6a..967ee0bd3 100644 +--- a/xembed-sni-proxy/sniproxy.h ++++ b/xembed-sni-proxy/sniproxy.h +@@ -44,6 +44,7 @@ class SNIProxy : public QObject + Q_PROPERTY(int WindowId READ WindowId) + Q_PROPERTY(bool ItemIsMenu READ ItemIsMenu) + Q_PROPERTY(KDbusImageVector IconPixmap READ IconPixmap) ++ Q_PROPERTY(QDBusObjectPath Menu READ menu CONSTANT) + + public: + explicit SNIProxy(xcb_window_t wid, QObject *parent = nullptr); +@@ -52,7 +53,10 @@ public: + void update(); + void resizeWindow(const uint16_t width, const uint16_t height) const; + void hideContainerWindow(xcb_window_t windowId) const; +- ++ QDBusObjectPath menu() const ++ { ++ return QDBusObjectPath("/"); ++ } + /** + * @return the category of the application associated to this item + * @see Category +-- +2.31.1 + diff --git a/0007-Guard-calls-into-layer-shell.patch b/0007-Guard-calls-into-layer-shell.patch new file mode 100644 index 0000000..2b958ba --- /dev/null +++ b/0007-Guard-calls-into-layer-shell.patch @@ -0,0 +1,40 @@ +From 6a5015951f9899e625bf8572f20cffc64d7aea33 Mon Sep 17 00:00:00 2001 +From: David Redondo +Date: Thu, 1 Jul 2021 09:08:05 +0200 +Subject: [PATCH 7/7] Guard calls into layer shell + +LayerShellQt::Window::get always returns a Window, ensure we only +do it on Wayland. +BUG:439356 +FIXED-IN:5.22.3 + + +(cherry picked from commit 211897b07a83a4e5c3b32b1f14fd710375a16240) +--- + logout-greeter/shutdowndlg.cpp | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/logout-greeter/shutdowndlg.cpp b/logout-greeter/shutdowndlg.cpp +index 97d5dc89d..4de539004 100644 +--- a/logout-greeter/shutdowndlg.cpp ++++ b/logout-greeter/shutdowndlg.cpp +@@ -209,10 +209,12 @@ void KSMShutdownDlg::init() + + setKeyboardGrabEnabled(true); + KWindowEffects::enableBlurBehind(this, true); +- if (auto w = LayerShellQt::Window::get(this)) { +- w->setKeyboardInteractivity(LayerShellQt::Window::KeyboardInteractivityExclusive); +- w->setExclusiveZone(-1); +- w->setLayer(LayerShellQt::Window::LayerOverlay); ++ if (KWindowSystem::isPlatformWayland()) { ++ if (auto w = LayerShellQt::Window::get(this)) { ++ w->setKeyboardInteractivity(LayerShellQt::Window::KeyboardInteractivityExclusive); ++ w->setExclusiveZone(-1); ++ w->setLayer(LayerShellQt::Window::LayerOverlay); ++ } + } + } + +-- +2.31.1 + diff --git a/plasma-workspace.spec b/plasma-workspace.spec index 0692f1d..6796444 100644 --- a/plasma-workspace.spec +++ b/plasma-workspace.spec @@ -14,7 +14,7 @@ Name: plasma-workspace Summary: Plasma workspace, applications and applets Version: 5.22.2.1 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2+ URL: https://invent.kde.org/plasma/%{name} @@ -64,6 +64,9 @@ Patch105: plasma-workspace-5.21.90-folderview_layout.patch ## upstreamable Patches ## upstream Patches +Patch3: 0003-Assing-first-screen-if-screen-is-null.patch +Patch5: 0005-xembed-sni-proxy-Add-Menu-property.patch +Patch7: 0007-Guard-calls-into-layer-shell.patch ## upstream Patches (master branch) @@ -425,6 +428,9 @@ BuildArch: noarch %setup -q -a 20 ## upstream patches +%patch3 -p1 -b .0003 +%patch5 -p1 -b .0005 +%patch7 -p1 -b .0007 %patch100 -p1 -b .konsole-in-contextmenu # FIXME/TODO: it is unclear whether this is needed or even a good idea anymore -- rex @@ -721,6 +727,9 @@ desktop-file-validate %{buildroot}%{_kf5_datadir}/applications/org.kde.{klipper, %changelog +* Thu Jul 01 2021 Rex Dieter - 5.22.2.1-2 +- backport upstream fixes + * Tue Jun 22 2021 Jan Grulich - 5.22.2.1-1 - 5.22.2.1