The RestartData property on the org.gtk.Application interface can be used by session services to save some data to disk should the application disappear.
The application would call g_application_set_restart_data() when the state of the application changes, with enough information for the application to restart itself in the same "position".
note about restart data size
have one example implementation of the session side
One idea would be for xdg-desktop-portal to save a stringified RestartData to ~/.var/app/$ID/config/state.gvariant if none empty when the application disappears from the bus.
- Can we enforce to only do this for unique applications?
- Can we detect applications leaving the bus suddenly, or do we want to rely on them clearing RestartData if they're "done" (or should they always save state, some state)
- Should we implement this via org.gnome.SessionManager.Client and the app calling out to gnome-session instead?
- Or is this API fine, and gnome-session can do what xdg-desktop-portal does above?