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