diff options
Diffstat (limited to 'gtk/gtkfontchooserwidget.c')
-rw-r--r-- | gtk/gtkfontchooserwidget.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/gtk/gtkfontchooserwidget.c b/gtk/gtkfontchooserwidget.c index e3844a963c..346c9a4f03 100644 --- a/gtk/gtkfontchooserwidget.c +++ b/gtk/gtkfontchooserwidget.c @@ -875,6 +875,13 @@ gtk_font_chooser_widget_finalize (GObject *object) } static gboolean +my_pango_font_family_equal (const char *familya, + const char *familyb) +{ + return g_ascii_strcasecmp (familya, familyb) == 0; +} + +static gboolean gtk_font_chooser_widget_find_font (GtkFontChooserWidget *fontchooser, const PangoFontDescription *font_desc, /* out arguments */ @@ -882,12 +889,24 @@ gtk_font_chooser_widget_find_font (GtkFontChooserWidget *fontchooser, { GtkFontChooserWidgetPrivate *priv = fontchooser->priv; PangoFontDescription *desc; + PangoFontFamily *family; gboolean valid; + if (pango_font_description_get_family (font_desc) == NULL) + return FALSE; + for (valid = gtk_tree_model_get_iter_first (priv->model, iter); valid; valid = gtk_tree_model_iter_next (priv->model, iter)) { + gtk_tree_model_get (priv->model, iter, + FAMILY_COLUMN, &family, + -1); + + if (!my_pango_font_family_equal (pango_font_description_get_family (font_desc), + pango_font_family_get_name (family))) + continue; + desc = tree_model_get_font_description (priv->model, iter); pango_font_description_merge_static (desc, font_desc, FALSE); |