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

Reply via email to