# HG changeset patch # User zas_ # Date 1233650481 0 # Node ID 4177057ca11bf0e17494ecc6c2759d30e1e5dd9d # Parent fa0e7b8e785ea418a2b0d2c2885ca5ef9fef892e editor_list_get() now returns a sorted list, this way items appear in the same order in all menus. diff -r fa0e7b8e785e -r 4177057ca11b src/editors.c --- a/src/editors.c Mon Feb 02 20:32:59 2009 +0000 +++ b/src/editors.c Tue Feb 03 08:41:21 2009 +0000 @@ -372,10 +372,24 @@ *listp = g_list_prepend(*listp, editor); } +static gint editor_sort(gconstpointer a, gconstpointer b) +{ + const EditorDescription *ea = a; + const EditorDescription *eb = b; + int ret; + + ret = strcmp(ea->menu_path, eb->menu_path); + if (ret != 0) return ret; + + return g_utf8_collate(ea->name, eb->name); +} + GList *editor_list_get(void) { GList *editors_list = NULL; g_hash_table_foreach(editors, editor_list_add_cb, &editors_list); + editors_list = g_list_sort(editors_list, editor_sort); + return editors_list; } diff -r fa0e7b8e785e -r 4177057ca11b src/layout_util.c --- a/src/layout_util.c Mon Feb 02 20:32:59 2009 +0000 +++ b/src/layout_util.c Tue Feb 03 08:41:21 2009 +0000 @@ -1512,18 +1512,6 @@ g_string_free(desc, TRUE); } -static gint layout_actions_editor_sort(gconstpointer a, gconstpointer b) -{ - const EditorDescription *ea = a; - const EditorDescription *eb = b; - int ret; - - ret = strcmp(ea->menu_path, eb->menu_path); - if (ret != 0) return ret; - - return g_utf8_collate(ea->name, eb->name); -} - static GList *layout_actions_editor_menu_path(EditorDescription *editor) { gchar **split = g_strsplit(editor->menu_path, "/", 0); @@ -1617,7 +1605,6 @@ " "); editors_list = editor_list_get(); - editors_list = g_list_sort(editors_list, layout_actions_editor_sort); old_path = NULL; work = editors_list;