Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37481443
en ru br
Репозитории ALT

Группа :: Graphical desktop/MATE
Пакет: mate-control-center

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: mate-control-center_fv-font-model-use-g_utf8_collation_key-to-sort-the-model.patch
Скачать


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;
 
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin