Gentoo Archives: gentoo-commits

From: Andreas Sturmlechner <asturm@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: kde-plasma/xdg-desktop-portal-kde/, kde-plasma/xdg-desktop-portal-kde/files/
Date: Sun, 07 Aug 2022 15:52:03
Message-Id: 1659886992.5ae5d27ba2c827201fb90330ed366eb018cb7719.asturm@gentoo
1 commit: 5ae5d27ba2c827201fb90330ed366eb018cb7719
2 Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
3 AuthorDate: Tue Aug 2 20:01:50 2022 +0000
4 Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
5 CommitDate: Sun Aug 7 15:43:12 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5ae5d27b
7
8 kde-plasma/xdg-desktop-portal-kde: drop 5.24.5-r2
9
10 Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>
11
12 kde-plasma/xdg-desktop-portal-kde/Manifest | 1 -
13 ...ast-close-only-streams-of-closing-session.patch | 107 ------
14 ...eencast-dont-provide-every-running-stream.patch | 358 ---------------------
15 ...de-5.24.5-screencast-stop-stream-actively.patch | 28 --
16 ...how-screenshare-notifier-more-prominently.patch | 32 --
17 .../xdg-desktop-portal-kde-5.24.5-r2.ebuild | 51 ---
18 6 files changed, 577 deletions(-)
19
20 diff --git a/kde-plasma/xdg-desktop-portal-kde/Manifest b/kde-plasma/xdg-desktop-portal-kde/Manifest
21 index 4f89b1e28dcc..41edd5438500 100644
22 --- a/kde-plasma/xdg-desktop-portal-kde/Manifest
23 +++ b/kde-plasma/xdg-desktop-portal-kde/Manifest
24 @@ -1,3 +1,2 @@
25 -DIST xdg-desktop-portal-kde-5.24.5.tar.xz 88904 BLAKE2B b7ab407132ce8dfdae58854dc29af270c411e1d2c7c8631c6209ff0fb44c80b8287dbe13a6ed60d2e8926f4b23ed3209242bd2836906a44ee06a936d56a91131 SHA512 6314fa4f679700224c6de44726f1fbf513249cebcb9c0fae212bde3de98cb0cc040f671e2435d8e53f379ad907bde4022a6ecfe5f95424a9414ce7471c0fe401
26 DIST xdg-desktop-portal-kde-5.24.6.tar.xz 89268 BLAKE2B 5ddfdf8eee3c897aee56aa8e8797dfb9b0e102083d9c1fb50457b3428fedfca7ff8107c2336646d721d4cfeb68b25db5ed447c6239ddefdde6c65c40fa9d37f2 SHA512 d394bbedba5a09a9d53b2aee2dd11a691c88dfda66bf2bf1fff192eba4dce447e05f932955d13d16f1e0b026b79c24c26cd09b81d5520f37a27a173e1287d77d
27 DIST xdg-desktop-portal-kde-5.25.4.tar.xz 105280 BLAKE2B a2b35523b881cc6e42691b8092ec64eceaf11b0c3678612fb777a2acbfb86cf19bfcc54ab1bc28b56b6a9bf6b38e6d7dfcb983385140ceb57a356c3c38797b97 SHA512 4841394425e6404e21758ec178e33a5e45dbb4a43208ea6c63f9a4f9baa3975cb7e3b9e720b61d88a428b03cd66227750a665edff50b6879c4578ce8c370d904
28
29 diff --git a/kde-plasma/xdg-desktop-portal-kde/files/xdg-desktop-portal-kde-5.24.5-screencast-close-only-streams-of-closing-session.patch b/kde-plasma/xdg-desktop-portal-kde/files/xdg-desktop-portal-kde-5.24.5-screencast-close-only-streams-of-closing-session.patch
30 deleted file mode 100644
31 index 134f55c900b5..000000000000
32 --- a/kde-plasma/xdg-desktop-portal-kde/files/xdg-desktop-portal-kde-5.24.5-screencast-close-only-streams-of-closing-session.patch
33 +++ /dev/null
34 @@ -1,107 +0,0 @@
35 -From cd8275c722aa25dd22353121131c914d3ab3b438 Mon Sep 17 00:00:00 2001
36 -From: Aleix Pol <aleixpol@×××.org>
37 -Date: Sat, 28 May 2022 03:36:14 +0200
38 -Subject: [PATCH] screencast: When closing a session, only close the streams
39 - from that session
40 -
41 ----
42 - src/screencast.cpp | 11 ++++++++---
43 - src/session.h | 12 ++++++++++++
44 - src/waylandintegration.cpp | 5 +++++
45 - src/waylandintegration.h | 1 +
46 - 4 files changed, 26 insertions(+), 3 deletions(-)
47 -
48 -diff --git a/src/screencast.cpp b/src/screencast.cpp
49 -index 5be6210..84cc4bd 100644
50 ---- a/src/screencast.cpp
51 -+++ b/src/screencast.cpp
52 -@@ -68,8 +68,12 @@ uint ScreenCastPortal::CreateSession(const QDBusObjectPath &handle,
53 - return 2;
54 - }
55 -
56 -- connect(session, &Session::closed, []() {
57 -- WaylandIntegration::stopAllStreaming();
58 -+ connect(session, &Session::closed, [session] {
59 -+ auto screencastSession = qobject_cast<ScreenCastSession *>(session);
60 -+ const auto streams = screencastSession->streams();
61 -+ for (const WaylandIntegration::Stream &stream : streams) {
62 -+ WaylandIntegration::stopStreaming(stream.nodeId);
63 -+ }
64 - });
65 -
66 - connect(WaylandIntegration::waylandIntegration(), &WaylandIntegration::WaylandIntegration::streamingStopped, session, &Session::close);
67 -@@ -169,7 +173,8 @@ uint ScreenCastPortal::Start(const QDBusObjectPath &handle,
68 - return 2;
69 - }
70 -
71 -- results.insert(QStringLiteral("streams"), QVariant::fromValue(streams));
72 -+ session->setStreams(streams);
73 -+ results.insert(QStringLiteral("streams"), QVariant::fromValue<WaylandIntegration::Streams>(streams));
74 -
75 - if (inhibitionsEnabled()) {
76 - new NotificationInhibition(app_id, i18nc("Do not disturb mode is enabled because...", "Screen sharing in progress"), session);
77 -diff --git a/src/session.h b/src/session.h
78 -index a42222e..dd05680 100644
79 ---- a/src/session.h
80 -+++ b/src/session.h
81 -@@ -14,6 +14,7 @@
82 -
83 - #include "remotedesktop.h"
84 - #include "screencast.h"
85 -+#include "waylandintegration.h"
86 -
87 - class Session : public QDBusVirtualObject
88 - {
89 -@@ -62,10 +63,21 @@ public:
90 - return SessionType::ScreenCast;
91 - }
92 -
93 -+ WaylandIntegration::Streams streams() const
94 -+ {
95 -+ return m_streams;
96 -+ }
97 -+ void setStreams(const WaylandIntegration::Streams &streams)
98 -+ {
99 -+ m_streams = streams;
100 -+ }
101 -+
102 - private:
103 - bool m_multipleSources;
104 - ScreenCastPortal::CursorModes m_cursorMode;
105 - ScreenCastPortal::SourceType m_types;
106 -+
107 -+ WaylandIntegration::Streams m_streams;
108 - };
109 -
110 - class RemoteDesktopSession : public ScreenCastSession
111 -diff --git a/src/waylandintegration.cpp b/src/waylandintegration.cpp
112 -index 9f5a177..e05f73a 100644
113 ---- a/src/waylandintegration.cpp
114 -+++ b/src/waylandintegration.cpp
115 -@@ -89,6 +89,11 @@ void WaylandIntegration::stopAllStreaming()
116 - globalWaylandIntegration->stopAllStreaming();
117 - }
118 -
119 -+void WaylandIntegration::stopStreaming(uint node)
120 -+{
121 -+ globalWaylandIntegration->stopStreaming(node);
122 -+}
123 -+
124 - void WaylandIntegration::requestPointerButtonPress(quint32 linuxButton)
125 - {
126 - globalWaylandIntegration->requestPointerButtonPress(linuxButton);
127 -diff --git a/src/waylandintegration.h b/src/waylandintegration.h
128 -index b8e6a00..784ee12 100644
129 ---- a/src/waylandintegration.h
130 -+++ b/src/waylandintegration.h
131 -@@ -131,6 +131,7 @@ void startStreamingInput();
132 - Stream startStreamingOutput(quint32 outputName, Screencasting::CursorMode mode);
133 - Stream startStreamingWindow(const QMap<int, QVariant> &win);
134 - void stopAllStreaming();
135 -+void stopStreaming(uint node);
136 -
137 - void requestPointerButtonPress(quint32 linuxButton);
138 - void requestPointerButtonRelease(quint32 linuxButton);
139 ---
140 -GitLab
141 -
142
143 diff --git a/kde-plasma/xdg-desktop-portal-kde/files/xdg-desktop-portal-kde-5.24.5-screencast-dont-provide-every-running-stream.patch b/kde-plasma/xdg-desktop-portal-kde/files/xdg-desktop-portal-kde-5.24.5-screencast-dont-provide-every-running-stream.patch
144 deleted file mode 100644
145 index 6aa94ccb7f69..000000000000
146 --- a/kde-plasma/xdg-desktop-portal-kde/files/xdg-desktop-portal-kde-5.24.5-screencast-dont-provide-every-running-stream.patch
147 +++ /dev/null
148 @@ -1,358 +0,0 @@
149 -From 3dbd366516c38d987025623feea18f79c15d72dd Mon Sep 17 00:00:00 2001
150 -From: Aleix Pol <aleixpol@×××.org>
151 -Date: Mon, 30 May 2022 15:42:02 +0200
152 -Subject: [PATCH] Backport of 5f7fe7482ae3de6e5dabbd2712c283439b0eecac
153 -
154 -Since the codebases had diverged over time, I've backported it by hand
155 -using the same concepts as the forementioned fix, trying to minimise the
156 -delta with the latest released Plasma 5.24.
157 ----
158 - src/remotedesktop.cpp | 12 ++------
159 - src/screencast.cpp | 15 ++++++----
160 - src/waylandintegration.cpp | 60 +++++++++++++++-----------------------
161 - src/waylandintegration.h | 26 +++++++++++++++--
162 - src/waylandintegration_p.h | 15 ++--------
163 - 5 files changed, 61 insertions(+), 67 deletions(-)
164 -
165 -diff --git a/src/remotedesktop.cpp b/src/remotedesktop.cpp
166 -index f36def4..9282ff0 100644
167 ---- a/src/remotedesktop.cpp
168 -+++ b/src/remotedesktop.cpp
169 -@@ -122,20 +122,14 @@ uint RemoteDesktopPortal::Start(const QDBusObjectPath &handle,
170 -
171 - if (remoteDesktopDialog->exec()) {
172 - if (session->screenSharingEnabled()) {
173 -- if (!WaylandIntegration::startStreamingOutput(remoteDesktopDialog->selectedScreens().first(), Screencasting::Hidden)) {
174 -+ auto stream = WaylandIntegration::startStreamingOutput(remoteDesktopDialog->selectedScreens().first(), Screencasting::Hidden);
175 -+ if (!stream.isValid()) {
176 - return 2;
177 - }
178 -
179 - WaylandIntegration::authenticate();
180 -
181 -- QVariant streams = WaylandIntegration::streams();
182 --
183 -- if (!streams.isValid()) {
184 -- qCWarning(XdgDesktopPortalKdeRemoteDesktop()) << "Pipewire stream is not ready to be streamed";
185 -- return 2;
186 -- }
187 --
188 -- results.insert(QStringLiteral("streams"), streams);
189 -+ results.insert(QStringLiteral("streams"), QVariant::fromValue<WaylandIntegration::Streams>({stream}));
190 - } else {
191 - qCWarning(XdgDesktopPortalKdeRemoteDesktop()) << "Only stream input";
192 - WaylandIntegration::startStreamingInput();
193 -diff --git a/src/screencast.cpp b/src/screencast.cpp
194 -index 210bbbb..5be6210 100644
195 ---- a/src/screencast.cpp
196 -+++ b/src/screencast.cpp
197 -@@ -147,26 +147,29 @@ uint ScreenCastPortal::Start(const QDBusObjectPath &handle,
198 -
199 - if (screenDialog->exec()) {
200 - const auto selectedScreens = screenDialog->selectedScreens();
201 -+ WaylandIntegration::Streams streams;
202 - for (quint32 outputid : selectedScreens) {
203 -- if (!WaylandIntegration::startStreamingOutput(outputid, Screencasting::CursorMode(session->cursorMode()))) {
204 -+ auto stream = WaylandIntegration::startStreamingOutput(outputid, Screencasting::CursorMode(session->cursorMode()));
205 -+ if (!stream.isValid()) {
206 - return 2;
207 - }
208 -+ streams << stream;
209 - }
210 - const auto selectedWindows = screenDialog->selectedWindows();
211 - for (const auto &win : selectedWindows) {
212 -- if (!WaylandIntegration::startStreamingWindow(win)) {
213 -+ auto stream = WaylandIntegration::startStreamingWindow(win);
214 -+ if (!stream.isValid()) {
215 - return 2;
216 - }
217 -+ streams << stream;
218 - }
219 -
220 -- QVariant streams = WaylandIntegration::streams();
221 --
222 -- if (!streams.isValid()) {
223 -+ if (streams.isEmpty()) {
224 - qCWarning(XdgDesktopPortalKdeScreenCast) << "Pipewire stream is not ready to be streamed";
225 - return 2;
226 - }
227 -
228 -- results.insert(QStringLiteral("streams"), streams);
229 -+ results.insert(QStringLiteral("streams"), QVariant::fromValue(streams));
230 -
231 - if (inhibitionsEnabled()) {
232 - new NotificationInhibition(app_id, i18nc("Do not disturb mode is enabled because...", "Screen sharing in progress"), session);
233 -diff --git a/src/waylandintegration.cpp b/src/waylandintegration.cpp
234 -index 44d862a..9f5a177 100644
235 ---- a/src/waylandintegration.cpp
236 -+++ b/src/waylandintegration.cpp
237 -@@ -43,7 +43,7 @@ Q_LOGGING_CATEGORY(XdgDesktopPortalKdeWaylandIntegration, "xdp-kde-wayland-integ
238 -
239 - Q_GLOBAL_STATIC(WaylandIntegration::WaylandIntegrationPrivate, globalWaylandIntegration)
240 -
241 --static QDebug operator<<(QDebug dbg, const WaylandIntegration::WaylandIntegrationPrivate::Stream &c)
242 -+static QDebug operator<<(QDebug dbg, const WaylandIntegration::Stream &c)
243 - {
244 - dbg.nospace() << "Stream(" << c.map << ", " << c.nodeId << ")";
245 - return dbg.space();
246 -@@ -74,12 +74,12 @@ void WaylandIntegration::startStreamingInput()
247 - globalWaylandIntegration->startStreamingInput();
248 - }
249 -
250 --bool WaylandIntegration::startStreamingOutput(quint32 outputName, Screencasting::CursorMode mode)
251 -+WaylandIntegration::Stream WaylandIntegration::startStreamingOutput(quint32 outputName, Screencasting::CursorMode mode)
252 - {
253 - return globalWaylandIntegration->startStreamingOutput(outputName, mode);
254 - }
255 -
256 --bool WaylandIntegration::startStreamingWindow(const QMap<int, QVariant> &win)
257 -+WaylandIntegration::Stream WaylandIntegration::startStreamingWindow(const QMap<int, QVariant> &win)
258 - {
259 - return globalWaylandIntegration->startStreamingWindow(win);
260 - }
261 -@@ -124,11 +124,6 @@ QMap<quint32, WaylandIntegration::WaylandOutput> WaylandIntegration::screens()
262 - return globalWaylandIntegration->screens();
263 - }
264 -
265 --QVariant WaylandIntegration::streams()
266 --{
267 -- return globalWaylandIntegration->streams();
268 --}
269 --
270 - // Thank you kscreen
271 - void WaylandIntegration::WaylandOutput::setOutputType(const QString &type)
272 - {
273 -@@ -157,7 +152,9 @@ void WaylandIntegration::WaylandOutput::setOutputType(const QString &type)
274 - }
275 - }
276 -
277 --const QDBusArgument &operator>>(const QDBusArgument &arg, WaylandIntegration::WaylandIntegrationPrivate::Stream &stream)
278 -+namespace WaylandIntegration
279 -+{
280 -+const QDBusArgument &operator>>(const QDBusArgument &arg, Stream &stream)
281 - {
282 - arg.beginStructure();
283 - arg >> stream.nodeId;
284 -@@ -177,7 +174,7 @@ const QDBusArgument &operator>>(const QDBusArgument &arg, WaylandIntegration::Wa
285 - return arg;
286 - }
287 -
288 --const QDBusArgument &operator<<(QDBusArgument &arg, const WaylandIntegration::WaylandIntegrationPrivate::Stream &stream)
289 -+const QDBusArgument &operator<<(QDBusArgument &arg, const Stream &stream)
290 - {
291 - arg.beginStructure();
292 - arg << stream.nodeId;
293 -@@ -186,9 +183,7 @@ const QDBusArgument &operator<<(QDBusArgument &arg, const WaylandIntegration::Wa
294 -
295 - return arg;
296 - }
297 --
298 --Q_DECLARE_METATYPE(WaylandIntegration::WaylandIntegrationPrivate::Stream)
299 --Q_DECLARE_METATYPE(WaylandIntegration::WaylandIntegrationPrivate::Streams)
300 -+}
301 -
302 - KWayland::Client::PlasmaWindowManagement *WaylandIntegration::plasmaWindowManagement()
303 - {
304 -@@ -207,8 +202,8 @@ WaylandIntegration::WaylandIntegrationPrivate::WaylandIntegrationPrivate()
305 - , m_fakeInput(nullptr)
306 - , m_screencasting(nullptr)
307 - {
308 -- qDBusRegisterMetaType<WaylandIntegrationPrivate::Stream>();
309 -- qDBusRegisterMetaType<WaylandIntegrationPrivate::Streams>();
310 -+ qDBusRegisterMetaType<Stream>();
311 -+ qDBusRegisterMetaType<Streams>();
312 - }
313 -
314 - WaylandIntegration::WaylandIntegrationPrivate::~WaylandIntegrationPrivate() = default;
315 -@@ -228,25 +223,25 @@ void WaylandIntegration::WaylandIntegrationPrivate::startStreamingInput()
316 - m_streamInput = true;
317 - }
318 -
319 --bool WaylandIntegration::WaylandIntegrationPrivate::startStreamingWindow(const QMap<int, QVariant> &win)
320 -+WaylandIntegration::Stream WaylandIntegration::WaylandIntegrationPrivate::startStreamingWindow(const QMap<int, QVariant> &win)
321 - {
322 - auto uuid = win[KWayland::Client::PlasmaWindowModel::Uuid].toString();
323 - return startStreaming(m_screencasting->createWindowStream(uuid, Screencasting::Hidden), {}, win);
324 - }
325 -
326 --bool WaylandIntegration::WaylandIntegrationPrivate::startStreamingOutput(quint32 outputName, Screencasting::CursorMode mode)
327 -+WaylandIntegration::Stream WaylandIntegration::WaylandIntegrationPrivate::startStreamingOutput(quint32 outputName, Screencasting::CursorMode mode)
328 - {
329 - auto output = m_outputMap.value(outputName).output();
330 -
331 - return startStreaming(m_screencasting->createOutputStream(output.data(), mode), output, {});
332 - }
333 -
334 --bool WaylandIntegration::WaylandIntegrationPrivate::startStreaming(ScreencastingStream *stream,
335 -- QSharedPointer<KWayland::Client::Output> output,
336 -- const QMap<int, QVariant> &win)
337 -+WaylandIntegration::Stream WaylandIntegration::WaylandIntegrationPrivate::startStreaming(ScreencastingStream *stream,
338 -+ QSharedPointer<KWayland::Client::Output> output,
339 -+ const QMap<int, QVariant> &win)
340 - {
341 - QEventLoop loop;
342 -- bool streamReady = false;
343 -+ Stream ret;
344 - connect(stream, &ScreencastingStream::failed, this, [&](const QString &error) {
345 - qCWarning(XdgDesktopPortalKdeWaylandIntegration) << "failed to start streaming" << stream << error;
346 -
347 -@@ -255,30 +250,26 @@ bool WaylandIntegration::WaylandIntegrationPrivate::startStreaming(Screencasting
348 - notification->setText(error);
349 - notification->setIconName(QStringLiteral("dialog-error"));
350 - notification->sendEvent();
351 --
352 -- streamReady = false;
353 - loop.quit();
354 - });
355 - connect(stream, &ScreencastingStream::created, this, [&](uint32_t nodeid) {
356 -- Stream s;
357 -- s.stream = stream;
358 -- s.nodeId = nodeid;
359 -+ ret.stream = stream;
360 -+ ret.nodeId = nodeid;
361 - if (output) {
362 - m_streamedScreenPosition = output->globalPosition();
363 -- s.map = {
364 -+ ret.map = {
365 - {QLatin1String("size"), output->pixelSize()},
366 - {QLatin1String("source_type"), static_cast<uint>(ScreenCastPortal::Monitor)},
367 - };
368 - } else {
369 -- s.map = {{QLatin1String("source_type"), static_cast<uint>(ScreenCastPortal::Window)}};
370 -+ ret.map = {{QLatin1String("source_type"), static_cast<uint>(ScreenCastPortal::Window)}};
371 - }
372 -- m_streams.append(s);
373 -+ m_streams.append(ret);
374 - startStreamingInput();
375 -
376 - connect(stream, &ScreencastingStream::closed, this, [this, nodeid] {
377 - stopStreaming(nodeid);
378 - });
379 -- streamReady = true;
380 -
381 - auto item = new KStatusNotifierItem(stream);
382 - item->setStandardActionsEnabled(false);
383 -@@ -303,10 +294,10 @@ bool WaylandIntegration::WaylandIntegrationPrivate::startStreaming(Screencasting
384 - QTimer::singleShot(3000, &loop, &QEventLoop::quit);
385 - loop.exec();
386 -
387 -- return streamReady;
388 -+ return ret;
389 - }
390 -
391 --void WaylandIntegration::WaylandIntegrationPrivate::Stream::close()
392 -+void WaylandIntegration::Stream::close()
393 - {
394 - stream->deleteLater();
395 - }
396 -@@ -390,11 +381,6 @@ QMap<quint32, WaylandIntegration::WaylandOutput> WaylandIntegration::WaylandInte
397 - return m_outputMap;
398 - }
399 -
400 --QVariant WaylandIntegration::WaylandIntegrationPrivate::streams()
401 --{
402 -- return QVariant::fromValue<WaylandIntegrationPrivate::Streams>(m_streams);
403 --}
404 --
405 - void WaylandIntegration::WaylandIntegrationPrivate::authenticate()
406 - {
407 - if (!m_waylandAuthenticationRequested) {
408 -diff --git a/src/waylandintegration.h b/src/waylandintegration.h
409 -index 04319c9..b8e6a00 100644
410 ---- a/src/waylandintegration.h
411 -+++ b/src/waylandintegration.h
412 -@@ -9,6 +9,7 @@
413 - #ifndef XDG_DESKTOP_PORTAL_KDE_WAYLAND_INTEGRATION_H
414 - #define XDG_DESKTOP_PORTAL_KDE_WAYLAND_INTEGRATION_H
415 -
416 -+#include <QDBusArgument>
417 - #include <QObject>
418 - #include <QPoint>
419 - #include <QSize>
420 -@@ -28,6 +29,23 @@ class ScreencastingSource;
421 -
422 - namespace WaylandIntegration
423 - {
424 -+
425 -+struct Stream {
426 -+ ScreencastingStream *stream = nullptr;
427 -+ uint nodeId;
428 -+ QVariantMap map;
429 -+
430 -+ bool isValid() const
431 -+ {
432 -+ return stream != nullptr;
433 -+ }
434 -+
435 -+ void close();
436 -+};
437 -+typedef QVector<Stream> Streams;
438 -+const QDBusArgument &operator<<(QDBusArgument &arg, const Stream &stream);
439 -+const QDBusArgument &operator>>(const QDBusArgument &arg, Stream &stream);
440 -+
441 - class WaylandOutput
442 - {
443 - public:
444 -@@ -110,8 +128,8 @@ bool isStreamingEnabled();
445 - bool isStreamingAvailable();
446 -
447 - void startStreamingInput();
448 --bool startStreamingOutput(quint32 outputName, Screencasting::CursorMode mode);
449 --bool startStreamingWindow(const QMap<int, QVariant> &win);
450 -+Stream startStreamingOutput(quint32 outputName, Screencasting::CursorMode mode);
451 -+Stream startStreamingWindow(const QMap<int, QVariant> &win);
452 - void stopAllStreaming();
453 -
454 - void requestPointerButtonPress(quint32 linuxButton);
455 -@@ -123,7 +141,6 @@ void requestPointerAxisDiscrete(Qt::Orientation axis, qreal delta);
456 - void requestKeyboardKeycode(int keycode, bool state);
457 -
458 - QMap<quint32, WaylandOutput> screens();
459 --QVariant streams();
460 -
461 - void init();
462 -
463 -@@ -132,4 +149,7 @@ KWayland::Client::PlasmaWindowManagement *plasmaWindowManagement();
464 - WaylandIntegration *waylandIntegration();
465 - }
466 -
467 -+Q_DECLARE_METATYPE(WaylandIntegration::Stream)
468 -+Q_DECLARE_METATYPE(WaylandIntegration::Streams)
469 -+
470 - #endif // XDG_DESKTOP_PORTAL_KDE_WAYLAND_INTEGRATION_H
471 -diff --git a/src/waylandintegration_p.h b/src/waylandintegration_p.h
472 -index 220ad3d..e95f6a0 100644
473 ---- a/src/waylandintegration_p.h
474 -+++ b/src/waylandintegration_p.h
475 -@@ -53,15 +53,6 @@ private:
476 - KWayland::Client::PlasmaWindowManagement *m_windowManagement = nullptr;
477 -
478 - public:
479 -- struct Stream {
480 -- ScreencastingStream *stream = nullptr;
481 -- uint nodeId;
482 -- QVariantMap map;
483 --
484 -- void close();
485 -- };
486 -- typedef QVector<Stream> Streams;
487 --
488 - void authenticate();
489 -
490 - bool isStreamingEnabled() const;
491 -@@ -69,9 +60,9 @@ public:
492 -
493 - void startStreamingInput();
494 -
495 -- bool startStreaming(ScreencastingStream *stream, QSharedPointer<KWayland::Client::Output> output, const QMap<int, QVariant> &win);
496 -- bool startStreamingOutput(quint32 outputName, Screencasting::CursorMode mode);
497 -- bool startStreamingWindow(const QMap<int, QVariant> &win);
498 -+ Stream startStreaming(ScreencastingStream *stream, QSharedPointer<KWayland::Client::Output> output, const QMap<int, QVariant> &win);
499 -+ Stream startStreamingOutput(quint32 outputName, Screencasting::CursorMode mode);
500 -+ Stream startStreamingWindow(const QMap<int, QVariant> &win);
501 - void stopStreaming(uint32_t nodeid);
502 - void stopAllStreaming();
503 -
504 ---
505 -GitLab
506 -
507
508 diff --git a/kde-plasma/xdg-desktop-portal-kde/files/xdg-desktop-portal-kde-5.24.5-screencast-stop-stream-actively.patch b/kde-plasma/xdg-desktop-portal-kde/files/xdg-desktop-portal-kde-5.24.5-screencast-stop-stream-actively.patch
509 deleted file mode 100644
510 index 3c1284108b20..000000000000
511 --- a/kde-plasma/xdg-desktop-portal-kde/files/xdg-desktop-portal-kde-5.24.5-screencast-stop-stream-actively.patch
512 +++ /dev/null
513 @@ -1,28 +0,0 @@
514 -From d74e7dce1d333107760a8ae8d2bdd7521d31a09f Mon Sep 17 00:00:00 2001
515 -From: Aleix Pol <aleixpol@×××.org>
516 -Date: Sat, 28 May 2022 03:37:14 +0200
517 -Subject: [PATCH] screencast: When we stop a stream, do it actively
518 -
519 -We were just forgetting about it.
520 -
521 -
522 -(cherry picked from commit aa531bde14a13521f99ae8e44d6e83bc8749d761)
523 ----
524 - src/waylandintegration.cpp | 1 +
525 - 1 file changed, 1 insertion(+)
526 -
527 -diff --git a/src/waylandintegration.cpp b/src/waylandintegration.cpp
528 -index b1b2d4d..44d862a 100644
529 ---- a/src/waylandintegration.cpp
530 -+++ b/src/waylandintegration.cpp
531 -@@ -328,6 +328,7 @@ void WaylandIntegration::WaylandIntegrationPrivate::stopStreaming(uint32_t nodei
532 - {
533 - for (auto it = m_streams.begin(), itEnd = m_streams.end(); it != itEnd; ++it) {
534 - if (it->nodeId == nodeid) {
535 -+ it->close();
536 - m_streams.erase(it);
537 - break;
538 - }
539 ---
540 -GitLab
541 -
542
543 diff --git a/kde-plasma/xdg-desktop-portal-kde/files/xdg-desktop-portal-kde-5.24.5-show-screenshare-notifier-more-prominently.patch b/kde-plasma/xdg-desktop-portal-kde/files/xdg-desktop-portal-kde-5.24.5-show-screenshare-notifier-more-prominently.patch
544 deleted file mode 100644
545 index 6b771bfede1e..000000000000
546 --- a/kde-plasma/xdg-desktop-portal-kde/files/xdg-desktop-portal-kde-5.24.5-show-screenshare-notifier-more-prominently.patch
547 +++ /dev/null
548 @@ -1,32 +0,0 @@
549 -From bbff465e6a005c737ee2e53eb5e072da006d9b4b Mon Sep 17 00:00:00 2001
550 -From: Aleix Pol <aleixpol@×××.org>
551 -Date: Fri, 13 May 2022 16:47:36 +0200
552 -Subject: [PATCH] screenshare: Show the screen sharing notifier more
553 - prominently
554 -
555 -Sets it as active, otherwise it got buried in the extended view of the
556 -system tray.
557 -
558 -BUG: 452980
559 -
560 -
561 -(cherry picked from commit 3d61dae1fa334a9f3dadc505a038f75aa5846588)
562 ----
563 - src/waylandintegration.cpp | 1 +
564 - 1 file changed, 1 insertion(+)
565 -
566 -diff --git a/src/waylandintegration.cpp b/src/waylandintegration.cpp
567 -index e125578..b1b2d4d 100644
568 ---- a/src/waylandintegration.cpp
569 -+++ b/src/waylandintegration.cpp
570 -@@ -292,6 +292,7 @@ bool WaylandIntegration::WaylandIntegrationPrivate::startStreaming(Screencasting
571 - }
572 - item->setOverlayIconByName("media-record");
573 - item->setToolTip(item->iconName(), item->title(), i18n("Press to cancel"));
574 -+ item->setStatus(KStatusNotifierItem::Active);
575 - connect(item, &KStatusNotifierItem::activateRequested, stream, [=] {
576 - stopStreaming(nodeid);
577 - stream->deleteLater();
578 ---
579 -GitLab
580 -
581
582 diff --git a/kde-plasma/xdg-desktop-portal-kde/xdg-desktop-portal-kde-5.24.5-r2.ebuild b/kde-plasma/xdg-desktop-portal-kde/xdg-desktop-portal-kde-5.24.5-r2.ebuild
583 deleted file mode 100644
584 index 0eb9b4578030..000000000000
585 --- a/kde-plasma/xdg-desktop-portal-kde/xdg-desktop-portal-kde-5.24.5-r2.ebuild
586 +++ /dev/null
587 @@ -1,51 +0,0 @@
588 -# Copyright 1999-2022 Gentoo Authors
589 -# Distributed under the terms of the GNU General Public License v2
590 -
591 -EAPI=8
592 -
593 -KFMIN=5.90.0
594 -PVCUT=$(ver_cut 1-3)
595 -QTMIN=5.15.2
596 -inherit ecm kde.org
597 -
598 -DESCRIPTION="Backend implementation for xdg-desktop-portal that is using Qt/KDE Frameworks"
599 -
600 -LICENSE="LGPL-2+"
601 -SLOT="5"
602 -KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv x86"
603 -IUSE=""
604 -
605 -COMMON_DEPEND="
606 - >=dev-libs/wayland-1.15
607 - >=dev-qt/qtdbus-${QTMIN}:5
608 - >=dev-qt/qtdeclarative-${QTMIN}:5
609 - >=dev-qt/qtgui-${QTMIN}:5
610 - >=dev-qt/qtprintsupport-${QTMIN}:5[cups]
611 - >=dev-qt/qtwidgets-${QTMIN}:5
612 - >=kde-frameworks/kcoreaddons-${KFMIN}:5
613 - >=kde-frameworks/kconfig-${KFMIN}:5
614 - >=kde-frameworks/kdeclarative-${KFMIN}:5
615 - >=kde-frameworks/ki18n-${KFMIN}:5
616 - >=kde-frameworks/kio-${KFMIN}:5
617 - >=kde-frameworks/kirigami-${KFMIN}:5
618 - >=kde-frameworks/knotifications-${KFMIN}:5
619 - >=kde-frameworks/kwidgetsaddons-${KFMIN}:5
620 - >=kde-frameworks/kwindowsystem-${KFMIN}:5
621 - >=kde-frameworks/kwayland-${KFMIN}:5
622 - >=kde-frameworks/plasma-${KFMIN}:5
623 -"
624 -DEPEND="${COMMON_DEPEND}
625 - >=dev-libs/plasma-wayland-protocols-1.1.1
626 - >=dev-qt/qtconcurrent-${QTMIN}:5
627 -"
628 -RDEPEND="${COMMON_DEPEND}
629 - sys-apps/xdg-desktop-portal
630 -"
631 -BDEPEND=">=dev-qt/qtwaylandscanner-${QTMIN}:5"
632 -
633 -PATCHES=(
634 - "${FILESDIR}/${P}-show-screenshare-notifier-more-prominently.patch" # KDE-bug 452980
635 - "${FILESDIR}/${P}-screencast-stop-stream-actively.patch"
636 - "${FILESDIR}/${P}-screencast-dont-provide-every-running-stream.patch"
637 - "${FILESDIR}/${P}-screencast-close-only-streams-of-closing-session.patch"
638 -)