summaryrefslogtreecommitdiff
path: root/daemon/gdm-local-display.c
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2015-02-17 16:46:29 -0500
committerRay Strode <rstrode@redhat.com>2015-02-18 17:34:16 -0500
commit35719a79adfb0a47894f1bc304bab665aaefcd49 (patch)
tree83e25fda950d93325f6ac72504760efbc44f200e /daemon/gdm-local-display.c
parent3402c71e4db08337e7a537cdd85a31eea1d5ff20 (diff)
downloadgdm-35719a79adfb0a47894f1bc304bab665aaefcd49.tar.gz
display: add new session-class property
The session-class property is analagous to the sd_login session class. It can be either "greeter" or "user". This helps us decide whether or not to add a launch environment to the display. We need this because some displays go straight to a user session. https://bugzilla.gnome.org/show_bug.cgi?id=744764
Diffstat (limited to 'daemon/gdm-local-display.c')
-rw-r--r--daemon/gdm-local-display.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/daemon/gdm-local-display.c b/daemon/gdm-local-display.c
index 6fc2e60f..a9762a7a 100644
--- a/daemon/gdm-local-display.c
+++ b/daemon/gdm-local-display.c
@@ -91,6 +91,7 @@ gdm_local_display_prepare (GdmDisplay *display)
GdmLocalDisplay *self = GDM_LOCAL_DISPLAY (display);
GdmLaunchEnvironment *launch_environment;
char *seat_id;
+ char *session_class;
gboolean doing_initial_setup = FALSE;
seat_id = NULL;
@@ -98,8 +99,13 @@ gdm_local_display_prepare (GdmDisplay *display)
g_object_get (self,
"seat-id", &seat_id,
"doing-initial-setup", &doing_initial_setup,
+ "session-class", &session_class,
NULL);
+ if (g_strcmp0 (session_class, "greeter") != 0) {
+ goto out;
+ }
+
if (!doing_initial_setup) {
launch_environment = gdm_create_greeter_launch_environment (NULL,
seat_id,
@@ -115,6 +121,9 @@ gdm_local_display_prepare (GdmDisplay *display)
g_object_set (self, "launch-environment", launch_environment, NULL);
g_object_unref (launch_environment);
+out:
+ g_free (seat_id);
+ g_free (session_class);
return GDM_DISPLAY_CLASS (gdm_local_display_parent_class)->prepare (display);
}