summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2015-06-15 15:03:51 -0400
committerRay Strode <rstrode@redhat.com>2015-11-04 15:12:30 -0500
commitf6f531c41115db77f408a390bc7fe4a8d16053e3 (patch)
tree24729d2eeb8834aff28540273daefd7ca5f406ba
parent8d97e91c8611b27c3e7d5e771dc0cd899582808e (diff)
downloadgdm-f6f531c41115db77f408a390bc7fe4a8d16053e3.tar.gz
libgdm: refactor session list handling code
This commit splits the code for getting sessions up into two chunks: xorg and wayland. This is necessary because future commits will treat xorg and wayland sessions differently.
-rw-r--r--libgdm/gdm-sessions.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/libgdm/gdm-sessions.c b/libgdm/gdm-sessions.c
index 08220fe0..db62516f 100644
--- a/libgdm/gdm-sessions.c
+++ b/libgdm/gdm-sessions.c
@@ -188,25 +188,35 @@ static void
collect_sessions (void)
{
int i;
- const char *search_dirs[] = {
+ const char *xorg_search_dirs[] = {
"/etc/X11/sessions/",
DMCONFDIR "/Sessions/",
DATADIR "/gdm/BuiltInSessions/",
DATADIR "/xsessions/",
+ NULL
+ };
+
#ifdef ENABLE_WAYLAND_SUPPORT
+ const char *wayland_search_dirs[] = {
DATADIR "/wayland-sessions/",
-#endif
NULL
};
+#endif
if (gdm_available_sessions_map == NULL) {
gdm_available_sessions_map = g_hash_table_new_full (g_str_hash, g_str_equal,
g_free, g_free);
}
- for (i = 0; search_dirs [i] != NULL; i++) {
- collect_sessions_from_directory (search_dirs [i]);
+ for (i = 0; xorg_search_dirs [i] != NULL; i++) {
+ collect_sessions_from_directory (xorg_search_dirs [i]);
}
+
+#ifdef ENABLE_WAYLAND_SUPPORT
+ for (i = 0; wayland_search_dirs [i] != NULL; i++) {
+ collect_sessions_from_directory (wayland_search_dirs [i]);
+ }
+#endif
}
/**