Author: olivier
Date: 2008-09-14 14:53:35 +0000 (Sun, 14 Sep 2008)
New Revision: 27864
Modified:
xfwm4/trunk/settings-dialogs/xfwm4-settings.c
Log:
Sort theme alphabetically (Fix bug #4318)
Modified: xfwm4/trunk/settings-dialogs/xfwm4-settings.c
===================================================================
--- xfwm4/trunk/settings-dialogs/xfwm4-settings.c 2008-09-14 10:21:57 UTC
(rev 27863)
+++ xfwm4/trunk/settings-dialogs/xfwm4-settings.c 2008-09-14 14:53:35 UTC
(rev 27864)
@@ -49,6 +49,7 @@
#include "frap-shortcuts-dialog.h"
+#define DEFAULT_THEME "Default"
enum
{
@@ -277,6 +278,28 @@
}
}
+static gint
+sort_func (GtkTreeModel * model, GtkTreeIter * a, GtkTreeIter * b, gpointer
user_data)
+{
+ gchar *a_str = NULL;
+ gchar *b_str = NULL;
+
+ gtk_tree_model_get (model, a, 0, &a_str, -1);
+ gtk_tree_model_get (model, b, 0, &b_str, -1);
+
+ if (a_str == NULL)
+ a_str = g_strdup ("");
+ if (b_str == NULL)
+ b_str = g_strdup ("");
+
+ if (!strcmp (a_str, DEFAULT_THEME))
+ return -1;
+ if (!strcmp (b_str, DEFAULT_THEME))
+ return 1;
+
+ return g_utf8_collate (a_str, b_str);
+}
+
GtkWidget *
xfwm4_dialog_new_from_xml (GladeXML *gxml)
{
@@ -286,6 +309,7 @@
GtkListStore *list_store;
GtkCellRenderer *renderer;
const MenuTmpl *tmpl_iter;
+ GtkTreeModel *tree_model;
GtkTreeSelection *theme_selection;
GtkTreeSelection *shortcuts_selection;
GtkTargetEntry target_entry[2];
@@ -474,6 +498,10 @@
gtk_tree_view_set_model (GTK_TREE_VIEW (theme_name_treeview), GTK_TREE_MODEL
(list_store));
gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW
(theme_name_treeview), 0, _("Theme"), renderer, "text", 0, NULL);
+ tree_model = gtk_tree_view_get_model (GTK_TREE_VIEW (theme_name_treeview));
+ gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (tree_model), 0,
sort_func, NULL, NULL);
+ gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (tree_model), 0,
GTK_SORT_ASCENDING);
+
theme_selection = gtk_tree_view_get_selection (GTK_TREE_VIEW
(theme_name_treeview));
gtk_tree_selection_set_mode (theme_selection, GTK_SELECTION_SINGLE);
_______________________________________________
Xfce4-commits mailing list
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits