tag_apply_open(summary_get_selection(mainwin->summaryview));
}
+static gint mainwin_tag_cmp_list(gconstpointer a, gconstpointer b)
+{
+ gint id_a = GPOINTER_TO_INT(a);
+ gint id_b = GPOINTER_TO_INT(b);
+ const gchar *tag_a = tags_get_tag(id_a);
+ const gchar *tag_b = tags_get_tag(id_b);
+
+
+ if (tag_a == NULL)
+ return tag_b == NULL ? 0:1;
+
+ if (tag_b == NULL)
+ return tag_a == NULL ? 0:1;
+
+ return g_utf8_collate(tag_a, tag_b);
+}
+
static void mainwindow_tags_menu_create(MainWindow *mainwin, gboolean refresh)
{
GtkWidget *label_menuitem;
GtkWidget *menu;
GtkWidget *item;
GSList *cur = tags_get_list();
- GSList *orig = cur;
+ GSList *orig = NULL;
gboolean existing_tags = FALSE;
+ cur = orig = g_slist_sort(cur, mainwin_tag_cmp_list);
+
label_menuitem = gtk_item_factory_get_item(mainwin->menu_factory,
"/Message/Tags");
g_signal_connect(G_OBJECT(label_menuitem), "activate",
FolderItem *item = mainwin->summaryview->folder_item;
g_return_if_fail(item != NULL);
+ item->processing_pending = TRUE;
folder_item_apply_processing(item);
+ item->processing_pending = FALSE;
}
static void execute_summary_cb(MainWindow *mainwin, guint action,
static void prefs_tags_open_cb(MainWindow *mainwin, guint action,
GtkWidget *widget)
{
- prefs_tags_open(mainwin);
+ GSList * list = summary_get_selected_msg_list(mainwin->summaryview);
+ tag_apply_open(list);
}
#if (defined(USE_OPENSSL) || defined (USE_GNUTLS))
static void ssl_manager_open_cb(MainWindow *mainwin, guint action,