core: Add MetaSessionManager::session-instantiated signal
Mostly useful for tests to catch a session being created. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4311>
This commit is contained in:
parent
99606f840c
commit
9a1dc0216e
@ -63,6 +63,14 @@ enum
|
||||
|
||||
static GParamSpec *props[N_PROPS] = { 0, };
|
||||
|
||||
enum
|
||||
{
|
||||
SESSION_INSTANTIATED,
|
||||
N_SIGNALS,
|
||||
};
|
||||
|
||||
static guint signals[N_SIGNALS] = { 0, };
|
||||
|
||||
#define MAX_SIZE (10 * 1024 * 1024)
|
||||
|
||||
static void meta_session_manager_initable_iface_init (GInitableIface *iface);
|
||||
@ -141,6 +149,15 @@ meta_session_manager_class_init (MetaSessionManagerClass *klass)
|
||||
object_class->get_property = meta_session_manager_get_property;
|
||||
object_class->finalize = meta_session_manager_finalize;
|
||||
|
||||
signals[SESSION_INSTANTIATED] =
|
||||
g_signal_new ("session-instantiated",
|
||||
G_TYPE_FROM_CLASS (object_class),
|
||||
G_SIGNAL_RUN_LAST,
|
||||
0, NULL, NULL, NULL,
|
||||
G_TYPE_NONE, 2,
|
||||
G_TYPE_STRING,
|
||||
META_TYPE_SESSION_STATE);
|
||||
|
||||
props[PROP_NAME] =
|
||||
g_param_spec_string ("name", NULL, NULL,
|
||||
NULL,
|
||||
@ -318,6 +335,10 @@ meta_session_manager_get_session (MetaSessionManager *manager,
|
||||
(gpointer) meta_session_state_get_name (session_state),
|
||||
g_object_ref (session_state));
|
||||
|
||||
g_signal_emit (manager, signals[SESSION_INSTANTIATED], 0,
|
||||
meta_session_state_get_name (session_state),
|
||||
session_state);
|
||||
|
||||
return g_steal_pointer (&session_state);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user