}
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;
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)
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);
}
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);