Bug 445875 - Implement screencast session restore
Summary: Implement screencast session restore
Alias: None
Product: xdg-desktop-portal-kde
Classification: Plasma
Component: general (show other bugs)
Version: unspecified
Platform: Flatpak Linux
: NOR wishlist
Target Milestone: ---
Assignee: Jan Grulich
Depends on:
Reported: 2021-11-21 20:16 UTC by Georges Stavracas
Modified: 2022-04-07 03:09 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 5.25


Note You need to log in before you can comment on or make changes to this bug.
Description Georges Stavracas 2021-11-21 20:16:22 UTC
Recently xdg-desktop-portal gained the screencast session restore feature, but it requires frontends to implement that. So xdg-desktop-portal-kde needs to send `restore_data` back to xdg-desktop-portal when a permission mode is passed.

There is a reference implementation in xdg-desktop-portal-gnome that is merged already: https://gitlab.gnome.org/GNOME/xdg-desktop-portal-gnome/-/merge_requests/14

You can use libportal's mainline branch to test this feature, since it's landed support for it too.
Comment 1 Nate Graham 2021-11-24 04:16:10 UTC
Thanks for letting us know!
Comment 2 Prajna Sariputra 2022-03-12 23:33:16 UTC
OBS has implemented support for this feature as well, looks like it's already there since version 27.2.0: https://github.com/obsproject/obs-studio/commit/26f1bfd05f2782d0e99a4a044b90bbb6b62b329a
Comment 3 Bug Janitor Service 2022-03-16 17:43:09 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/xdg-desktop-portal-kde/-/merge_requests/79
Comment 4 Aleix Pol 2022-04-04 15:57:28 UTC
Git commit 1e42ef66aae9d3338c18a207011a60fb65c4402f by Aleix Pol.
Committed on 02/04/2022 at 00:09.
Pushed by apol into branch 'master'.

screencast: Allow restoring streams when possible

M  +7    -0    src/ScreenChooserDialog.qml
M  +8    -2    src/outputsmodel.cpp
M  +10   -2    src/outputsmodel.h
M  +136  -11   src/screencast.cpp
M  +8    -1    src/screencast.h
M  +5    -0    src/screenchooserdialog.cpp
M  +1    -0    src/screenchooserdialog.h
M  +2    -0    src/session.cpp
M  +11   -0    src/session.h