[dia] Fix sorting of recent menu
- From: Hans Breuer <hans src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [dia] Fix sorting of recent menu
- Date: Sun, 29 Jul 2012 20:48:41 +0000 (UTC)
commit 12fff0d9de7ffab93906cf8c33a48fb36b31d911
Author: Hans Breuer <hans breuer org>
Date: Fri Jul 27 16:01:07 2012 +0200
Fix sorting of recent menu
app/menus.c | 15 +++++++++++++--
1 files changed, 13 insertions(+), 2 deletions(-)
---
diff --git a/app/menus.c b/app/menus.c
index 7eb2b6a..bf4fa6c 100644
--- a/app/menus.c
+++ b/app/menus.c
@@ -1151,6 +1151,12 @@ menus_get_action (const gchar *name)
return action;
}
+static int
+cmp_action_names (const void *a, const void *b)
+{
+ return strcmp (gtk_action_get_name (GTK_ACTION (a)), gtk_action_get_name (GTK_ACTION (b)));
+}
+
void
menus_set_recent (GtkActionGroup *actions)
{
@@ -1177,6 +1183,9 @@ menus_set_recent (GtkActionGroup *actions)
list = gtk_action_group_list_actions (actions);
g_return_if_fail (list);
+ /* sort it by the action name to preserve out order */
+ list = g_list_sort (list, cmp_action_names);
+
recent_actions = actions;
g_object_ref (G_OBJECT (recent_actions));
gtk_ui_manager_insert_action_group (ui_manager,
@@ -1184,13 +1193,15 @@ menus_set_recent (GtkActionGroup *actions)
10 /* insert at back */ );
do {
+ const gchar* aname = gtk_action_get_name (GTK_ACTION (list->data));
+
id = gtk_ui_manager_new_merge_id (ui_manager);
recent_merge_ids = g_slist_prepend (recent_merge_ids, (gpointer) id);
gtk_ui_manager_add_ui (ui_manager, id,
recent_path,
- gtk_action_get_name (GTK_ACTION (list->data)),
- gtk_action_get_name (GTK_ACTION (list->data)),
+ aname,
+ aname,
GTK_UI_MANAGER_AUTO,
TRUE);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]