diff options
author | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2023-09-15 14:40:05 +0200 |
---|---|---|
committer | Mihai Moldovan <ionic@ionic.de> | 2023-09-15 18:57:23 +0200 |
commit | c2846982424b3bf3f2703e7a3a19b7b5f7d3611e (patch) | |
tree | e001335fc8b6c386edc6eb9795c124548b6572a0 | |
parent | 9faeec2e427ca0fb9316c71204ff0721e16337ed (diff) | |
download | arctica-greeter-c2846982424b3bf3f2703e7a3a19b7b5f7d3611e.tar.gz arctica-greeter-c2846982424b3bf3f2703e7a3a19b7b5f7d3611e.tar.bz2 arctica-greeter-c2846982424b3bf3f2703e7a3a19b7b5f7d3611e.zip |
src/session-list.vala: Rework case-insensitive session sorting. Do the sorting on a deep copy of the session list from LightDM.
This resolves the issue of loosing all session types starting with lower
case letters from the session chooser when accessing the chooser list
the second time.
-rw-r--r-- | src/session-list.vala | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/src/session-list.vala b/src/session-list.vala index 21e9eb6..b90c751 100644 --- a/src/session-list.vala +++ b/src/session-list.vala @@ -29,12 +29,6 @@ public class SessionPrompt : PromptBox Object (id: id, session: session, default_session: default_session); } - private unowned GLib.List<LightDM.Session> sessions_sorted_ci (GLib.List<LightDM.Session> sessions) - { - sessions.sort_with_data((a, b) => GLib.strcmp (a.name.casefold(), b.name.casefold())); - return sessions; - } - private ToggleBox box; construct @@ -53,7 +47,9 @@ public class SessionPrompt : PromptBox } else { - foreach (var session in sessions_sorted_ci( LightDM.get_sessions() ) ) + var sessions = LightDM.get_sessions().copy(); + sessions.sort_with_data((a, b) => GLib.strcmp (a.name.casefold().collate_key(), b.name.casefold().collate_key())); + foreach (var session in sessions) { /* Apply hide x11/wayland filter */ if (greeter.validate_session(session.key, false) != null) { |