editor_list_get() now returns a sorted list, this way items appear in the same order...
authorLaurent Monin <geeqie@norz.org>
Tue, 3 Feb 2009 08:41:21 +0000 (08:41 +0000)
committerLaurent Monin <geeqie@norz.org>
Tue, 3 Feb 2009 08:41:21 +0000 (08:41 +0000)
src/editors.c
src/layout_util.c

index f02d5d5..83ddd97 100644 (file)
@@ -372,10 +372,24 @@ static void editor_list_add_cb(gpointer key, gpointer value, gpointer data)
        *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;
 }
 
index ff61464..b4b6797 100644 (file)
@@ -1512,18 +1512,6 @@ static void layout_actions_setup_marks(LayoutWindow *lw)
        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 @@ static void layout_actions_setup_editors(LayoutWindow *lw)
                                "  <menubar name='MainMenu'>");
 
        editors_list = editor_list_get();
-       editors_list = g_list_sort(editors_list, layout_actions_editor_sort);
        
        old_path = NULL;
        work = editors_list;