summaryrefslogtreecommitdiff
path: root/daemon/gdm-display.c
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2015-02-18 14:26:58 -0500
committerRay Strode <rstrode@redhat.com>2015-02-18 17:34:17 -0500
commit4dc2e0775cbafb725ac08c6e7ad1d0b9bbcd1d89 (patch)
tree86a9924a43c27415a1992a8af80be5b5f443be44 /daemon/gdm-display.c
parentcafb4c402e41d4adc3124e443d98c10e98924aa2 (diff)
downloadgdm-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.c23
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,