928fd2b94133ae3c503928f673077ed4d00cc090
[gentoo.git] /
1 diff -Nurp lxdm-0.3.0.orig/src/lxdm.c lxdm-0.3.0/src/lxdm.c
2 --- lxdm-0.3.0.orig/src/lxdm.c  2011-07-03 01:53:26.262780480 +0200
3 +++ lxdm-0.3.0/src/lxdm.c       2011-07-03 01:52:11.975780526 +0200
4 @@ -1174,7 +1174,27 @@ gboolean lxdm_get_session_info(char *ses
5                 }
6                 else
7                 {
8 -                       name=g_strdup(session);
9 +                       GKeyFile *f;
10 +                       char *file_path;
11 +                       gboolean loaded;
12 +
13 +                       f = g_key_file_new();
14 +                       char *desktop_name = g_strconcat(session, ".desktop", NULL);
15 +                       file_path = g_build_filename(XSESSIONS_DIR, desktop_name, NULL);
16 +                       loaded = g_key_file_load_from_file(f, file_path, G_KEY_FILE_NONE, NULL);
17 +                       g_free(file_path);
18 +                       g_free(desktop_name);
19 +
20 +                       if ( loaded )
21 +                       {
22 +                               name = g_key_file_get_locale_string(f, "Desktop Entry", "Name", NULL, NULL);
23 +                               exec = g_key_file_get_string(f, "Desktop Entry", "Exec", NULL);
24 +                       }
25 +                       else
26 +                       {
27 +                               name=g_strdup(session);
28 +                       }
29 +                       g_key_file_free(f);
30                 }
31         }
32         if(name && !exec)