]> rtime.felk.cvut.cz Git - sojka/lightdm.git/blobdiff - src/seat-xlocal.c
Merge from trunk
[sojka/lightdm.git] / src / seat-xlocal.c
index 2cdf0496b21f3c3efff298e86bf15e8f430f3309..f164c1e5fca352b1e3d3c23684770d99d9435925 100644 (file)
@@ -58,13 +58,13 @@ x_server_transition_plymouth_cb (XServerLocal *x_server, Seat *seat)
 }
 
 static DisplayServer *
-seat_xlocal_create_display_server (Seat *seat, const gchar *session_type)
+seat_xlocal_create_display_server (Seat *seat, const gchar *session_type, gboolean is_greeter)
 {  
     if (strcmp (session_type, "x") != 0)
         return NULL;
 
     XServerLocal *x_server;
-    const gchar *command = NULL, *layout = NULL, *config_file = NULL, *xdmcp_manager = NULL, *key_name = NULL;
+    const gchar *command = NULL, *layout = NULL, *config_file = NULL, *xdmcp_manager = NULL, *key_name = NULL, *xdg_seat = NULL;
     gboolean allow_tcp;
     gint vt = -1, port = 0;
 
@@ -107,6 +107,10 @@ seat_xlocal_create_display_server (Seat *seat, const gchar *session_type)
     layout = seat_get_string_property (seat, "xserver-layout");
     if (layout)
         x_server_local_set_layout (x_server, layout);
+        
+    xdg_seat = seat_get_string_property (seat, "xdg-seat");
+    if (xdg_seat)
+        x_server_local_set_xdg_seat (x_server, xdg_seat);
 
     config_file = seat_get_string_property (seat, "xserver-config");
     if (config_file)
@@ -169,7 +173,9 @@ seat_xlocal_create_greeter_session (Seat *seat)
     const gchar *xdg_seat;
 
     greeter_session = SEAT_CLASS (seat_xlocal_parent_class)->create_greeter_session (seat);
-    xdg_seat = "seat0";
+    xdg_seat = seat_get_string_property (seat, "xdg-seat");
+    if (!xdg_seat)
+        xdg_seat = "seat0";
     l_debug (seat, "Setting XDG_SEAT=%s", xdg_seat);
     session_set_env (SESSION (greeter_session), "XDG_SEAT", xdg_seat);
 
@@ -177,13 +183,15 @@ seat_xlocal_create_greeter_session (Seat *seat)
 }
 
 static Session *
-seat_xlocal_create_session (Seat *seat, Session *user_session)
+seat_xlocal_create_session (Seat *seat)
 {
     Session *session;
     const gchar *xdg_seat;
 
-    session = SEAT_CLASS (seat_xlocal_parent_class)->create_session (seat, user_session);
-    xdg_seat = "seat0";
+    session = SEAT_CLASS (seat_xlocal_parent_class)->create_session (seat);
+    xdg_seat = seat_get_string_property (seat, "xdg-seat");
+    if (!xdg_seat)
+        xdg_seat = "seat0";
     l_debug (seat, "Setting XDG_SEAT=%s", xdg_seat);
     session_set_env (SESSION (session), "XDG_SEAT", xdg_seat);