summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <halfline@gmail.com>2023-05-16 15:06:58 +0000
committerRay Strode <halfline@gmail.com>2023-05-16 15:06:58 +0000
commit3d9272fb0b90f0ca780d2dc8d6a13890fb157cbd (patch)
tree833dcf54fd8e21162368d8685df7f0950542db6e
parent23632753a6a8fed3f71441445afa23f53fb555ea (diff)
parent3503910fa447a399d9444c1b10da513bf3c0ccd8 (diff)
downloadgdm-main.tar.gz
Merge branch 'fix-session-hiding' into 'main'HEADmain
libgdm: Fix session loading precedence See merge request GNOME/gdm!202
-rw-r--r--libgdm/gdm-sessions.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/libgdm/gdm-sessions.c b/libgdm/gdm-sessions.c
index d8b4d5cd..c3aeafdd 100644
--- a/libgdm/gdm-sessions.c
+++ b/libgdm/gdm-sessions.c
@@ -143,6 +143,7 @@ load_session_file (const char *id,
if (!key_file_is_relevant (key_file)) {
g_debug ("\"%s\" is hidden or contains non-executable TryExec program\n", path);
+ g_hash_table_remove (gdm_available_sessions_map, id);
goto out;
}
@@ -322,7 +323,7 @@ collect_sessions (void)
}
if (!supported_session_types || g_strv_contains ((const char * const *) supported_session_types, "x11")) {
- for (i = 0; i < xorg_search_array->len; i++) {
+ for (i = xorg_search_array->len - 1; i >= 0; i--) {
collect_sessions_from_directory (g_ptr_array_index (xorg_search_array, i));
}
}
@@ -330,7 +331,7 @@ collect_sessions (void)
#ifdef ENABLE_WAYLAND_SUPPORT
#ifdef ENABLE_USER_DISPLAY_SERVER
if (!supported_session_types || g_strv_contains ((const char * const *) supported_session_types, "wayland")) {
- for (i = 0; i < wayland_search_array->len; i++) {
+ for (i = wayland_search_array->len - 1; i >= 0; i--) {
collect_sessions_from_directory (g_ptr_array_index (wayland_search_array, i));
}
}