#include "seat-xremote.h"
#include "configuration.h"
#include "x-server-remote.h"
-#include "x-greeter.h"
-#include "x-session.h"
G_DEFINE_TYPE (SeatXRemote, seat_xremote, SEAT_TYPE);
}
static DisplayServer *
-seat_xremote_create_display_server (Seat *seat)
+seat_xremote_create_display_server (Seat *seat, const gchar *session_type)
{
XServerRemote *x_server;
const gchar *hostname;
gint number;
+ if (strcmp (session_type, "x") != 0)
+ {
+ g_warning ("X remote seat only supports X display servers, not '%s'", session_type);
+ return NULL;
+ }
+
hostname = seat_get_string_property (seat, "xserver-hostname");
if (!hostname)
hostname = "localhost";
static Greeter *
seat_xremote_create_greeter_session (Seat *seat)
{
- XGreeter *greeter_session;
+ Greeter *greeter_session;
- greeter_session = x_greeter_new ();
+ greeter_session = SEAT_CLASS (seat_xremote_parent_class)->create_greeter_session (seat);
session_set_env (SESSION (greeter_session), "XDG_SEAT", "seat0");
- return GREETER (greeter_session);
+ return greeter_session;
}
static Session *
seat_xremote_create_session (Seat *seat)
{
- return SESSION (x_session_new ());
+ Session *session;
+
+ session = SEAT_CLASS (seat_xremote_parent_class)->create_session (seat);
+ session_set_env (SESSION (session), "XDG_SEAT", "seat0");
+
+ return session;
}
static void