[gtk+] css: Use setters for font size and family
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] css: Use setters for font size and family
- Date: Sun, 1 May 2016 05:13:05 +0000 (UTC)
commit 309c6dfaf8a081166e28e4109db96c2292151edd
Author: Matthias Clasen <mclasen redhat com>
Date: Sun May 1 01:10:59 2016 -0400
css: Use setters for font size and family
This avoid creating pango font descriptions all the time, when
the gtk-font-name setting hasn't actually changed.
gtk/gtkcssenumvalue.c | 25 +++++++------------------
gtk/gtkcssinitialvalue.c | 25 ++-----------------------
2 files changed, 9 insertions(+), 41 deletions(-)
---
diff --git a/gtk/gtkcssenumvalue.c b/gtk/gtkcssenumvalue.c
index 7cb0adc..607b7c1 100644
--- a/gtk/gtkcssenumvalue.c
+++ b/gtk/gtkcssenumvalue.c
@@ -144,30 +144,19 @@ gtk_css_font_size_get_default_px (GtkStyleProviderPrivate *provider,
{
GtkSettings *settings;
PangoFontDescription *description;
- char *font_name;
- double font_size;
+ int font_size;
settings = _gtk_style_provider_private_get_settings (provider);
if (settings == NULL)
return DEFAULT_FONT_SIZE_PT * get_dpi (style) / 72.0;
-
- g_object_get (settings, "gtk-font-name", &font_name, NULL);
- description = pango_font_description_from_string (font_name);
- g_free (font_name);
- if (description == NULL)
- return DEFAULT_FONT_SIZE_PT * get_dpi (style) / 72.0;
- if (pango_font_description_get_set_fields (description) & PANGO_FONT_MASK_SIZE)
- {
- font_size = (double) pango_font_description_get_size (description) / PANGO_SCALE;
- if (!pango_font_description_get_size_is_absolute (description))
- font_size = font_size * get_dpi (style) / 72.0;
- }
+ font_size = gtk_settings_get_font_size (settings);
+ if (font_size == 0)
+ return DEFAULT_FONT_SIZE_PT * get_dpi (style) / 72.0;
+ else if (gtk_settings_get_font_size_is_absolute (settings))
+ return (double) font_size / PANGO_SCALE;
else
- font_size = DEFAULT_FONT_SIZE_PT * get_dpi (style) / 72.0;
-
- pango_font_description_free (description);
- return font_size;
+ return ((double) font_size / PANGO_SCALE) * get_dpi (style) / 72.0;
}
static GtkCssValue *
diff --git a/gtk/gtkcssinitialvalue.c b/gtk/gtkcssinitialvalue.c
index 736e716..a21bb4f 100644
--- a/gtk/gtkcssinitialvalue.c
+++ b/gtk/gtkcssinitialvalue.c
@@ -62,29 +62,8 @@ gtk_css_value_initial_compute (GtkCssValue *value,
case GTK_CSS_PROPERTY_FONT_FAMILY:
settings = _gtk_style_provider_private_get_settings (provider);
- if (settings)
- {
- PangoFontDescription *description;
- char *font_name;
-
- g_object_get (settings, "gtk-font-name", &font_name, NULL);
- description = pango_font_description_from_string (font_name);
- g_free (font_name);
- if (description == NULL)
- break;
-
- if (pango_font_description_get_set_fields (description) & PANGO_FONT_MASK_FAMILY)
- {
- GtkCssValue *val;
-
- val = _gtk_css_array_value_new (_gtk_css_string_value_new (pango_font_description_get_family
(description)));
- pango_font_description_free (description);
-
- return val;
- }
-
- pango_font_description_free (description);
- }
+ if (settings && gtk_settings_get_font_family (settings) != NULL)
+ return _gtk_css_array_value_new (_gtk_css_string_value_new (gtk_settings_get_font_family
(settings)));
break;
default:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]