mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-10 12:40:10 +00:00
css: Add a workaround for gtk_widget_override_font()
The problem here is that the CSS machinery expects font sizes to be in pixels, but gtk_widget_override_font() provides a value in point and the CSS machinery has no ability to query the DPI and convert. This patch changes the dconversion DPI we use from a hardcoded 96 to the default screen's DPI, which should work better than before. This will of course not listen to changes in the default screen's DPI, but that shouldn't be a problem. People who want to workaround this should use gtk_widget_override_font() with a font that has an absolute size set via pango_font_description_set_absolute_size (size * PANGO_SCALE * gdk_screen_get_resolution (screen)); https://bugzilla.gnome.org/show_bug.cgi?id=774248
This commit is contained in:
parent
8af082f3c7
commit
6ff326a82f
@ -1118,7 +1118,7 @@ unpack_font_description (GtkCssShorthandProperty *shorthand,
|
||||
g_value_init (&v, G_TYPE_DOUBLE);
|
||||
size = pango_font_description_get_size (description) / PANGO_SCALE;
|
||||
if (!pango_font_description_get_size_is_absolute (description))
|
||||
size = size * 96.0 / 72.0;
|
||||
size = size * gdk_screen_get_resolution (gdk_screen_get_default ()) / 72.0;
|
||||
g_value_set_double (&v, size);
|
||||
prop = _gtk_style_property_lookup ("font-size");
|
||||
_gtk_style_property_assign (prop, props, state, &v);
|
||||
|
Loading…
Reference in New Issue
Block a user