diff options
author | Benjamin Otte <otte@redhat.com> | 2011-09-21 00:07:21 +0200 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2011-09-22 21:44:05 +0200 |
commit | a124d178255964b7eccc1d4e89a86b3cfd099f5e (patch) | |
tree | c991e620e4249cd014bd94e1ea51948ee51d558c /gtk/gtkfontchooserwidget.c | |
parent | 9d96830571fcd1f2405d472970f5d0c0119af8ac (diff) | |
download | gtk+-a124d178255964b7eccc1d4e89a86b3cfd099f5e.tar.gz |
fontchooser: Store an iter to the current font
Note that we cannot use GtkTreeSelection for this, because when the font
list is filtered the current font may not be visible.
Diffstat (limited to 'gtk/gtkfontchooserwidget.c')
-rw-r--r-- | gtk/gtkfontchooserwidget.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/gtk/gtkfontchooserwidget.c b/gtk/gtkfontchooserwidget.c index cddd6fb40c..f99ec35851 100644 --- a/gtk/gtkfontchooserwidget.c +++ b/gtk/gtkfontchooserwidget.c @@ -92,6 +92,8 @@ struct _GtkFontChooserWidgetPrivate GtkWidget *size_slider; PangoFontDescription *font_desc; + GtkTreeIter font_iter; /* invalid if font not available or pointer into model + (not filter_model) to the row containing font */ PangoFontFace *face; PangoFontFamily *family; @@ -385,6 +387,9 @@ cursor_changed_cb (GtkTreeView *treeview, return; } + gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER (priv->filter_model), + &priv->font_iter, + &iter); gtk_tree_model_get (priv->filter_model, &iter, FACE_COLUMN, &face, FAMILY_COLUMN, &family, @@ -647,6 +652,7 @@ gtk_font_chooser_widget_load_fonts (GtkFontChooserWidget *fontchooser) qsort (families, n_families, sizeof (PangoFontFamily *), cmp_families); gtk_list_store_clear (list_store); + memset (&priv->font_iter, 0, sizeof (GtkTreeIter)); /* Iterate over families and faces */ for (i = 0; i < n_families; i++) @@ -997,7 +1003,7 @@ gtk_font_chooser_widget_select_font (GtkFontChooserWidget *fontchooser) if (gtk_font_chooser_widget_find_font (fontchooser, priv->font_desc, - &iter, + &priv->font_iter, &priv->family, &priv->face)) { @@ -1021,6 +1027,7 @@ gtk_font_chooser_widget_select_font (GtkFontChooserWidget *fontchooser) (gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->family_face_list))); priv->face = NULL; priv->family = NULL; + memset (&priv->font_iter, 0, sizeof (GtkTreeIter)); } } |