Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Step:15
gdm.11221
gdm-ignore-duplicate-desktop-file.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File gdm-ignore-duplicate-desktop-file.patch of Package gdm.11221
diff --git a/libgdm/gdm-sessions.c b/libgdm/gdm-sessions.c index 7badafe..2aafce1 100644 --- a/libgdm/gdm-sessions.c +++ b/libgdm/gdm-sessions.c @@ -111,6 +111,17 @@ key_file_is_relevant (GKeyFile *key_file) return TRUE; } +static gboolean +find_translated_name (gpointer key, + gpointer value, + gpointer user_data) +{ + char *id = key; + GdmSessionFile *session = value; + char *translated_name = user_data; + return g_strcmp0 (session->translated_name, translated_name) == 0; +} + static void load_session_file (const char *id, const char *path) @@ -118,7 +129,7 @@ load_session_file (const char *id, GKeyFile *key_file; GError *error; gboolean res; - GdmSessionFile *session; + GdmSessionFile *session, *psession; key_file = g_key_file_new (); @@ -154,9 +165,13 @@ load_session_file (const char *id, session->translated_name = g_key_file_get_locale_string (key_file, G_KEY_FILE_DESKTOP_GROUP, "Name", NULL, NULL); session->translated_comment = g_key_file_get_locale_string (key_file, G_KEY_FILE_DESKTOP_GROUP, "Comment", NULL, NULL); - g_hash_table_insert (gdm_available_sessions_map, - g_strdup (id), - session); + psession = g_hash_table_find (gdm_available_sessions_map, find_translated_name, session->translated_name); + + if(psession) + g_hash_table_remove (gdm_available_sessions_map, psession->id); + + g_hash_table_insert (gdm_available_sessions_map, g_strdup (id), session); + out: g_key_file_free (key_file); }
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor