[plasma/xdg-desktop-portal-kde] src: screencast: Implement v5; provide mapping_id for eis users
David Redondo <[email protected]>
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git commit 30f7494ab23e33a204a0df1b83c8848d84c4e83a by David Redondo.
Committed on 22/07/2026 at 08:55.
Pushed by davidre into branch 'master'.
screencast: Implement v5; provide mapping_id for eis users
The id matches the one set by KWin on absolute devices, so
apps can now whic device to use.
M +1 -1 src/screencast.h
M +6 -3 src/screencasting.cpp
https://invent.kde.org/plasma/xdg-desktop-portal-kde/-/commit/30f7494ab23e33a204a0df1b83c8848d84c4e83a
diff --git a/src/screencast.h b/src/screencast.h
index 88943347..7bf55e39 100644
--- a/src/screencast.h
+++ b/src/screencast.h
@@ -52,7 +52,7 @@ public:
uint version() const
{
- return 4;
+ return 5;
}
uint AvailableSourceTypes() const
{
diff --git a/src/screencasting.cpp b/src/screencasting.cpp
index c1535243..934419c0 100644
--- a/src/screencasting.cpp
+++ b/src/screencasting.cpp
@@ -134,6 +134,7 @@ ScreencastingStream *Screencasting::createOutputStream(QScreen *screen, CursorMo
{QLatin1String("position"), screen->geometry().topLeft()},
{QLatin1String("size"), screen->size()},
{QLatin1String("source_type"), static_cast<uint>(ScreenCastPortal::Monitor)},
+ {QLatin1String("mapping_id"), screen->name()},
};
return stream;
}
@@ -171,9 +172,10 @@ Screencasting::createVirtualOutputStream(const QString &name, const QString &des
} else {
stream->d->init(d->stream_virtual_output(name, s.width(), s.height(), wl_fixed_from_double(scale), mode));
}
- connect(qGuiApp, &QGuiApplication::screenAdded, stream, [stream, name](const QScreen *screen) {
- // KWin adds "Virtual-" to virtual screen naems
- if (screen->name() == QLatin1StringView("Virtual-") + name) {
+ // KWin adds "Virtual-" to virtual screen naems
+ const QString screenId = QLatin1StringView("Virtual-") + name;
+ connect(qGuiApp, &QGuiApplication::screenAdded, stream, [stream, screenId](const QScreen *screen) {
+ if (screen->name() == screenId) {
stream->d->m_geometry = screen->geometry();
connect(screen, &QScreen::geometryChanged, stream, [stream](const QRect &geometry) {
stream->d->m_geometry = geometry;
@@ -183,6 +185,7 @@ Screencasting::createVirtualOutputStream(const QString &name, const QString &des
stream->d->metaData = {
{QLatin1String("size"), s},
{QLatin1String("source_type"), static_cast<uint>(ScreenCastPortal::Virtual)},
+ {QLatin1String("mapping_id"), screenId}
};
return stream;
}