[gtk/wip/baedert/accelmap: 2/2] accelmap: Sort accels before interating over them in foreach()



commit 68f19a8e6a018504be839cc22151652bc7657bca
Author: Timm Bäder <mail baedert org>
Date:   Wed Jul 3 10:07:21 2019 +0200

    accelmap: Sort accels before interating over them in foreach()

 gtk/gtkaccelmap.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)
---
diff --git a/gtk/gtkaccelmap.c b/gtk/gtkaccelmap.c
index 487018e392..0dda57104f 100644
--- a/gtk/gtkaccelmap.c
+++ b/gtk/gtkaccelmap.c
@@ -155,6 +155,16 @@ accel_entry_equal (gconstpointer key1,
   return g_str_equal (entry1->accel_path, entry2->accel_path);
 }
 
+static int
+accel_entry_compare (gconstpointer a,
+                     gconstpointer b)
+{
+  const AccelEntry *entry1 = a;
+  const AccelEntry *entry2 = b;
+
+  return strcmp (entry1->accel_path, entry2->accel_path);
+}
+
 static inline AccelEntry*
 accel_path_lookup (const gchar *accel_path)
 {
@@ -817,6 +827,8 @@ gtk_accel_map_foreach (gpointer           data,
   g_return_if_fail (foreach_func != NULL);
 
   entries = g_hash_table_slist_values (accel_entry_ht);
+  entries = g_slist_sort (entries, accel_entry_compare);
+
   for (slist = entries; slist; slist = slist->next)
     {
       AccelEntry *entry = slist->data;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]