diff options
author | Ray Strode <rstrode@redhat.com> | 2015-02-18 14:26:58 -0500 |
---|---|---|
committer | Ray Strode <rstrode@redhat.com> | 2015-02-18 17:34:17 -0500 |
commit | 4dc2e0775cbafb725ac08c6e7ad1d0b9bbcd1d89 (patch) | |
tree | 86a9924a43c27415a1992a8af80be5b5f443be44 /daemon/gdm-display.c | |
parent | cafb4c402e41d4adc3124e443d98c10e98924aa2 (diff) | |
download | gdm-4dc2e0775cbafb725ac08c6e7ad1d0b9bbcd1d89.tar.gz |
display: add session-type property
The session-type property is analagous to the
sd_login session type. It can be either
"x11" or "wayland".
This helps us decide whether to start a wayland
session or an X session.
https://bugzilla.gnome.org/show_bug.cgi?id=744764
Diffstat (limited to 'daemon/gdm-display.c')
-rw-r--r-- | daemon/gdm-display.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/daemon/gdm-display.c b/daemon/gdm-display.c index 6bdb1fc3..b03fa4e3 100644 --- a/daemon/gdm-display.c +++ b/daemon/gdm-display.c @@ -61,6 +61,7 @@ struct GdmDisplayPrivate char *seat_id; char *session_id; char *session_class; + char *session_type; char *remote_hostname; int x11_display_number; @@ -102,6 +103,7 @@ enum { PROP_SEAT_ID, PROP_SESSION_ID, PROP_SESSION_CLASS, + PROP_SESSION_TYPE, PROP_REMOTE_HOSTNAME, PROP_X11_DISPLAY_NUMBER, PROP_X11_DISPLAY_NAME, @@ -844,6 +846,14 @@ _gdm_display_set_session_class (GdmDisplay *self, } static void +_gdm_display_set_session_type (GdmDisplay *self, + const char *session_type) +{ + g_free (self->priv->session_type); + self->priv->session_type = g_strdup (session_type); +} + +static void _gdm_display_set_remote_hostname (GdmDisplay *self, const char *hostname) { @@ -930,6 +940,9 @@ gdm_display_set_property (GObject *object, case PROP_SESSION_CLASS: _gdm_display_set_session_class (self, g_value_get_string (value)); break; + case PROP_SESSION_TYPE: + _gdm_display_set_session_type (self, g_value_get_string (value)); + break; case PROP_REMOTE_HOSTNAME: _gdm_display_set_remote_hostname (self, g_value_get_string (value)); break; @@ -986,6 +999,9 @@ gdm_display_get_property (GObject *object, case PROP_SESSION_CLASS: g_value_set_string (value, self->priv->session_class); break; + case PROP_SESSION_TYPE: + g_value_set_string (value, self->priv->session_type); + break; case PROP_REMOTE_HOSTNAME: g_value_set_string (value, self->priv->remote_hostname); break; @@ -1275,6 +1291,13 @@ gdm_display_class_init (GdmDisplayClass *klass) "greeter", G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); g_object_class_install_property (object_class, + PROP_SESSION_TYPE, + g_param_spec_string ("session-type", + NULL, + NULL, + NULL, + G_PARAM_READWRITE)); + g_object_class_install_property (object_class, PROP_IS_INITIAL, g_param_spec_boolean ("is-initial", NULL, |