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, };
|
static GParamSpec *props[N_PROPS] = { 0, };
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
SESSION_INSTANTIATED,
|
||||||
|
N_SIGNALS,
|
||||||
|
};
|
||||||
|
|
||||||
|
static guint signals[N_SIGNALS] = { 0, };
|
||||||
|
|
||||||
#define MAX_SIZE (10 * 1024 * 1024)
|
#define MAX_SIZE (10 * 1024 * 1024)
|
||||||
|
|
||||||
static void meta_session_manager_initable_iface_init (GInitableIface *iface);
|
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->get_property = meta_session_manager_get_property;
|
||||||
object_class->finalize = meta_session_manager_finalize;
|
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] =
|
props[PROP_NAME] =
|
||||||
g_param_spec_string ("name", NULL, NULL,
|
g_param_spec_string ("name", NULL, NULL,
|
||||||
NULL,
|
NULL,
|
||||||
@ -318,6 +335,10 @@ meta_session_manager_get_session (MetaSessionManager *manager,
|
|||||||
(gpointer) meta_session_state_get_name (session_state),
|
(gpointer) meta_session_state_get_name (session_state),
|
||||||
g_object_ref (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);
|
return g_steal_pointer (&session_state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user