diff -upr mate-control-center/font-viewer/font-model.c mate-control-center-test/font-viewer/font-model.c --- mate-control-center/font-viewer/font-model.c 2015-08-30 00:53:43.971130641 +0200 +++ mate-control-center-test/font-viewer/font-model.c 2015-08-30 00:40:30.405967000 +0200 @@ -342,7 +342,7 @@ ensure_font_list (FontViewModel *self) FcObjectSet *os; gint i; FcChar8 *file; - gchar *font_name; + gchar *font_name, *collation_key; GdkPixbuf *pix; if (self->priv->font_list) { @@ -375,15 +375,20 @@ ensure_font_list (FontViewModel *self) continue; pix = get_fallback_icon (); + collation_key = g_utf8_collate_key (font_name, -1); + gtk_list_store_insert_with_values (GTK_LIST_STORE (self), NULL, -1, COLUMN_NAME, font_name, COLUMN_POINTER, self->priv->font_list->fonts[i], COLUMN_PATH, file, COLUMN_ICON, pix, + COLUMN_COLLATION_KEY, collation_key, -1); ensure_thumbnail (self, (const gchar *) file); + g_free (font_name); + g_free (collation_key); g_object_unref (pix); } } @@ -403,20 +408,20 @@ font_view_model_sort_func (GtkTreeModel GtkTreeIter *b, gpointer user_data) { - gchar *name_a = NULL, *name_b = NULL; + gchar *key_a = NULL, *key_b = NULL; int retval; gtk_tree_model_get (model, a, - COLUMN_NAME, &name_a, + COLUMN_COLLATION_KEY, &key_a, -1); gtk_tree_model_get (model, b, - COLUMN_NAME, &name_b, + COLUMN_COLLATION_KEY, &key_b, -1); - retval = g_strcmp0 (name_a, name_b); + retval = g_strcmp0 (key_a, key_b); - g_free (name_a); - g_free (name_b); + g_free (key_a); + g_free (key_b); return retval; } @@ -471,7 +476,7 @@ static void font_view_model_init (FontViewModel *self) { GType types[NUM_COLUMNS] = - { G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_STRING, GDK_TYPE_PIXBUF }; + { G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_STRING, GDK_TYPE_PIXBUF, G_TYPE_STRING }; self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, FONT_VIEW_TYPE_MODEL, FontViewModelPrivate); diff -upr mate-control-center/font-viewer/font-model.h mate-control-center-test/font-viewer/font-model.h --- mate-control-center/font-viewer/font-model.h 2015-08-30 00:52:33.749410713 +0200 +++ mate-control-center-test/font-viewer/font-model.h 2015-08-30 00:46:30.223670000 +0200 @@ -35,6 +35,7 @@ typedef enum { COLUMN_POINTER, COLUMN_PATH, COLUMN_ICON, + COLUMN_COLLATION_KEY, NUM_COLUMNS } FontViewModelColumns;