summaryrefslogtreecommitdiff
path: root/gtk/gtkfontchooserwidget.c
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2011-09-21 20:31:06 +0200
committerBenjamin Otte <otte@redhat.com>2011-09-22 21:44:05 +0200
commitc1958ae9f2e04ad337336db50c52c17f803a53ad (patch)
treeb0002676d2f22a3acdafa1092a1a85f00f6bbf5a /gtk/gtkfontchooserwidget.c
parent14154dac310f6f9f9a7a1d79215ba73abe3b3596 (diff)
downloadgtk+-c1958ae9f2e04ad337336db50c52c17f803a53ad.tar.gz
fontchooser: Use absolute size for the preview text in the list
With absolute sizes, Pango is way better at getting the actual sizes of the fonts to match up. It's a bit harder to compute a proper value for this, whcih makes the code ugly, but as long as it works better...
Diffstat (limited to 'gtk/gtkfontchooserwidget.c')
-rw-r--r--gtk/gtkfontchooserwidget.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/gtk/gtkfontchooserwidget.c b/gtk/gtkfontchooserwidget.c
index 4aeabfb650..fc5162ff44 100644
--- a/gtk/gtkfontchooserwidget.c
+++ b/gtk/gtkfontchooserwidget.c
@@ -792,6 +792,22 @@ visible_func (GtkTreeModel *model,
return result;
}
+/* in pango units */
+static int
+gtk_font_chooser_widget_get_preview_text_height (GtkFontChooserWidget *fontchooser)
+{
+ GtkWidget *treeview = fontchooser->priv->family_face_list;
+ double dpi, font_size;
+
+ dpi = gdk_screen_get_resolution (gtk_widget_get_screen (treeview));
+ gtk_style_context_get (gtk_widget_get_style_context (treeview),
+ gtk_widget_get_state_flags (treeview),
+ "font-size", &font_size,
+ NULL);
+
+ return dpi / 72.0 * PANGO_SCALE_X_LARGE * font_size * PANGO_SCALE;
+}
+
static void
gtk_font_chooser_widget_cell_data_func (GtkTreeViewColumn *column,
GtkCellRenderer *cell,
@@ -827,7 +843,7 @@ gtk_font_chooser_widget_cell_data_func (GtkTreeViewColumn *column,
attribute->start_index = to_string_len;
pango_attr_list_insert (attrs, attribute);
- attribute = pango_attr_scale_new (PANGO_SCALE_X_LARGE);
+ attribute = pango_attr_size_new_absolute (gtk_font_chooser_widget_get_preview_text_height (fontchooser));
attribute->start_index = to_string_len;
pango_attr_list_insert (attrs, attribute);