]> rtime.felk.cvut.cz Git - sojka/lightdm.git/commitdiff
Improve multiseat support.
authorAlberts Muktupāvels <alberts.muktupavels@gmail.com>
Sat, 8 Feb 2014 09:33:33 +0000 (09:33 +0000)
committerTarmac <Unknown>
Sat, 8 Feb 2014 09:33:33 +0000 (09:33 +0000)
Approved by PS Jenkins bot, Robert Ancell.

1  2 
src/seat-xlocal.c

diff --combined src/seat-xlocal.c
index d46b6232d5aa112ca933a531781c0a92720fd2d5,b36f1d6f951fe8cab19d3db70c987ea5b6ff87a4..ee0edf4ddaad54dc13c1f0e1774f7c406a1e3362
@@@ -61,6 -61,7 +61,7 @@@ static gin
  get_vt (Seat *seat, DisplayServer *display_server)
  {
      gint vt = -1;
+     const gchar *xdg_seat = seat_get_string_property (seat, "xdg-seat");
  
      /* If Plymouth is running, stop it */
      if (plymouth_get_is_active () && plymouth_has_active_vt ())
@@@ -78,7 -79,9 +79,9 @@@
      }
      if (plymouth_get_is_active ())
          plymouth_quit (FALSE);
-     if (vt < 0)
+     if (!xdg_seat)
+         xdg_seat = "seat0";
+     if (vt < 0 && g_strcmp0 (xdg_seat, "seat0") == 0)
          vt = vt_get_unused ();
  
      return vt;
@@@ -88,7 -91,7 +91,7 @@@ static DisplayServer 
  create_x_server (Seat *seat)
  {
      XServerLocal *x_server;
 -    const gchar *command = NULL, *layout = NULL, *config_file = NULL, *xdmcp_manager = NULL, *key_name = NULL, *xdg_seat = NULL;
 +    const gchar *command = NULL, *layout = NULL, *config_file = NULL, *xdmcp_manager = NULL, *key_name = NULL;
      gboolean allow_tcp;
      gint vt, 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);
 +
 +    x_server_local_set_xdg_seat (x_server, seat_get_name (seat));
  
      config_file = seat_get_string_property (seat, "xserver-config");
      if (config_file)
@@@ -224,9 -229,14 +227,9 @@@ static Greeter 
  seat_xlocal_create_greeter_session (Seat *seat)
  {
      Greeter *greeter_session;
 -    const gchar *xdg_seat;
  
      greeter_session = SEAT_CLASS (seat_xlocal_parent_class)->create_greeter_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 (greeter_session), "XDG_SEAT", xdg_seat);
 +    session_set_env (SESSION (greeter_session), "XDG_SEAT", seat_get_name (seat));
  
      return greeter_session;
  }
@@@ -235,9 -245,14 +238,9 @@@ static Session 
  seat_xlocal_create_session (Seat *seat)
  {
      Session *session;
 -    const gchar *xdg_seat;
  
      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);
 +    session_set_env (SESSION (session), "XDG_SEAT", seat_get_name (seat));
  
      return session;
  }