]> rtime.felk.cvut.cz Git - sojka/lightdm.git/commitdiff
Use xsession directory from lightdm.conf in liblightdm
authorRobert Ancell <robert.ancell@canonical.com>
Thu, 14 Jun 2012 04:37:36 +0000 (16:37 +1200)
committerRobert Ancell <robert.ancell@canonical.com>
Thu, 14 Jun 2012 04:37:36 +0000 (16:37 +1200)
1  2 
NEWS
liblightdm-gobject/session.c

diff --cc NEWS
index 6436c26e4720766960fb136fa2a1d52ea0635499,6436c26e4720766960fb136fa2a1d52ea0635499..ebfe9517cacf888e7f2b944ec0693dd5da404310
--- 1/NEWS
--- 2/NEWS
+++ b/NEWS
@@@ -9,6 -9,6 +9,7 @@@ Overview of changes in lightdm 1.3.
      * Install PAM configuration
      * Run greeters inside the "lightdm-greeter" PAM service
      * Handle setresgid and setresuid not being available
++    * Use xsession directory from lightdm.conf in liblightdm
  
  Overview of changes in lightdm 1.2.0
  
index 7eb33373662b0c40c79ced1a3d5d17852c0b2471,082cc337a396be7b9463718c8403480fcafe7a2f..603ddb7f5314e2b2049f0d681067427933fa98de
@@@ -110,17 -110,41 +110,43 @@@ static voi
  update_sessions (void)
  {
      GDir *directory;
++    gboolean result;
      GError *error = NULL;
  
+     GKeyFile *config_key_file = NULL;
+     gchar *config_path = NULL;
+     gchar *xsessions_dir = g_strdup (XSESSIONS_DIR);
      if (have_sessions)
          return;
  
-     directory = g_dir_open (XSESSIONS_DIR, 0, &error);
+     config_path = g_build_filename (CONFIG_DIR, "lightdm.conf", NULL);
+     config_key_file = g_key_file_new ();
 -    if (!g_key_file_load_from_file (config_key_file, config_path, G_KEY_FILE_NONE, &error)) {
 -        if (error) {
 -            g_warning ("Failed to open configuration file: %s", error->message);
 -            g_clear_error (&error);
 -        }
 -    }
 -    else {
++    result = g_key_file_load_from_file (config_key_file, config_path, G_KEY_FILE_NONE, &error);
++    if (error)
++        g_warning ("Failed to open configuration file: %s", error->message);
++    g_clear_error (&error);
++    if (result)
++    {
+         gchar *xd_value = g_key_file_get_string (config_key_file, "LightDM", "xsessions-directory", NULL);
 -        if (xd_value) {
++        if (xd_value)
++        {
+             g_free (xsessions_dir);
+             xsessions_dir = xd_value;
+         }
+     }
+     g_key_file_free (config_key_file);
+     g_free (config_path);
+     
+     directory = g_dir_open (xsessions_dir, 0, &error);
      if (error)
          g_warning ("Failed to open sessions directory: %s", error->message);
      g_clear_error (&error);
 -    if (!directory) {
 +    if (!directory)
++    {
+         g_free (xsessions_dir);
          return;
+     }
  
      while (TRUE)
      {