backends: Add generic D-Bus session manager helper class

This class is intended to be used as a base class for D-bus interface
implementations that deal with "session" objects, i.e. a D-Bus object
representing a certain session of some kind, e.g. a screen cast session.

It handles things such as hooking up to the D-Bus client watcher,
generates IDs, handles shutdown procedures.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2713>
This commit is contained in:
Jonas Ådahl
2022-03-11 00:20:27 +01:00
committed by Marge Bot
parent 10043c7c11
commit 122fea2dc4
6 changed files with 584 additions and 3 deletions

View File

@ -133,9 +133,9 @@ struct _MetaBackendPrivate
MetaEgl *egl;
#endif
MetaSettings *settings;
MetaDbusSessionWatcher *dbus_session_watcher;
#ifdef HAVE_REMOTE_DESKTOP
MetaRemoteAccessController *remote_access_controller;
MetaDbusSessionWatcher *dbus_session_watcher;
MetaScreenCast *screen_cast;
MetaRemoteDesktop *remote_desktop;
#endif
@ -1363,6 +1363,14 @@ meta_backend_get_settings (MetaBackend *backend)
return priv->settings;
}
MetaDbusSessionWatcher *
meta_backend_get_dbus_session_watcher (MetaBackend *backend)
{
MetaBackendPrivate *priv = meta_backend_get_instance_private (backend);
return priv->dbus_session_watcher;
}
#ifdef HAVE_REMOTE_DESKTOP
/**
* meta_backend_get_remote_desktop: (skip)