diff --git a/ChangeLog b/ChangeLog index aa3636bfe6..413b343b6d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2007-03-15 Federico Mena Quintero + + * gtk/gtkfilechooserdefault.c (find_good_size_from_style): + PANGO_PIXELS() gives us device units, which are *points* in + pangocairo's parlance, but we want actual pixels. So, get the + screen's resolution to compute the actual number of pixels. + Fixes bug #418585. + 2007-03-15 Emmanuele Bassi Merge from trunk: diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c index 5ec539cff7..dc120f1325 100644 --- a/gtk/gtkfilechooserdefault.c +++ b/gtk/gtkfilechooserdefault.c @@ -7145,12 +7145,24 @@ find_good_size_from_style (GtkWidget *widget, gint default_width, default_height; int font_size; GtkRequisition req; + GdkScreen *screen; + double resolution; g_assert (widget->style != NULL); impl = GTK_FILE_CHOOSER_DEFAULT (widget); + screen = gtk_widget_get_screen (widget); + if (screen) + { + resolution = gdk_screen_get_resolution (screen); + if (resolution < 0.0) /* will be -1 if the resolution is not defined in the GdkScreen */ + resolution = 96.0; + } + else + resolution = 96.0; /* wheeee */ + font_size = pango_font_description_get_size (widget->style->font_desc); - font_size = PANGO_PIXELS (font_size); + font_size = PANGO_PIXELS (font_size) * resolution / 72.0; default_width = font_size * NUM_CHARS; default_height = font_size * NUM_LINES;