[gdm] display: add session-type property
- From: Ray Strode <halfline src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gdm] display: add session-type property
- Date: Wed, 18 Feb 2015 22:47:48 +0000 (UTC)
commit 4dc2e0775cbafb725ac08c6e7ad1d0b9bbcd1d89
Author: Ray Strode <rstrode redhat com>
Date: Wed Feb 18 14:26:58 2015 -0500
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
daemon/gdm-display.c | 23 +++++++++++++++++++++++
daemon/gdm-local-display.c | 5 ++++-
2 files changed, 27 insertions(+), 1 deletions(-)
---
diff --git a/daemon/gdm-display.c b/daemon/gdm-display.c
index 6bdb1fc..b03fa4e 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,
diff --git a/daemon/gdm-local-display.c b/daemon/gdm-local-display.c
index 50a3719..3df6bb7 100644
--- a/daemon/gdm-local-display.c
+++ b/daemon/gdm-local-display.c
@@ -92,6 +92,7 @@ gdm_local_display_prepare (GdmDisplay *display)
GdmLaunchEnvironment *launch_environment;
char *seat_id;
char *session_class;
+ char *session_type;
gboolean doing_initial_setup = FALSE;
seat_id = NULL;
@@ -100,6 +101,7 @@ gdm_local_display_prepare (GdmDisplay *display)
"seat-id", &seat_id,
"doing-initial-setup", &doing_initial_setup,
"session-class", &session_class,
+ "session-type", &session_type,
NULL);
if (g_strcmp0 (session_class, "greeter") != 0) {
@@ -109,7 +111,7 @@ gdm_local_display_prepare (GdmDisplay *display)
if (!doing_initial_setup) {
launch_environment = gdm_create_greeter_launch_environment (NULL,
seat_id,
- NULL,
+ session_type,
NULL,
TRUE);
} else {
@@ -125,6 +127,7 @@ gdm_local_display_prepare (GdmDisplay *display)
out:
g_free (seat_id);
g_free (session_class);
+ g_free (session_type);
return GDM_DISPLAY_CLASS (gdm_local_display_parent_class)->prepare (display);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]