From a8496dc90ff77f324bf72371f588a0736c0bc82c Mon Sep 17 00:00:00 2001 From: Bilal Elmoussaoui Date: Wed, 8 Jan 2025 14:58:30 +0100 Subject: [PATCH] st/theme-node: Get resolution from context Part-of: --- src/st/st-theme-context.c | 14 ++++++++++++++ src/st/st-theme-context.h | 2 ++ src/st/st-theme-node.c | 8 ++++---- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/st/st-theme-context.c b/src/st/st-theme-context.c index 743190ac7..cf6893492 100644 --- a/src/st/st-theme-context.c +++ b/src/st/st-theme-context.c @@ -577,3 +577,17 @@ st_theme_context_get_scale_factor (StThemeContext *context) return context->scale_factor; } + +/** + * st_theme_context_get_resolution: + * @context: a #StThemeContext + * + * Returns: The font resolution + */ +double +st_theme_context_get_resolution (StThemeContext *context) +{ + g_return_val_if_fail (ST_IS_THEME_CONTEXT (context), -1); + + return clutter_backend_get_resolution (context->clutter_backend); +} \ No newline at end of file diff --git a/src/st/st-theme-context.h b/src/st/st-theme-context.h index 03577871e..d7ccdff01 100644 --- a/src/st/st-theme-context.h +++ b/src/st/st-theme-context.h @@ -63,4 +63,6 @@ StThemeNode * st_theme_context_intern_node (StThemeContext int st_theme_context_get_scale_factor (StThemeContext *context); +double st_theme_context_get_resolution (StThemeContext *context); + G_END_DECLS diff --git a/src/st/st-theme-node.c b/src/st/st-theme-node.c index 0817e51fc..4e0111d4f 100644 --- a/src/st/st-theme-node.c +++ b/src/st/st-theme-node.c @@ -1367,7 +1367,7 @@ get_length_from_term (StThemeNode *node, break; case POINTS: { - double resolution = clutter_backend_get_resolution (clutter_get_default_backend ()); + double resolution = st_theme_context_get_resolution (node->context); *length = num->val * multiplier * (resolution / 72.); } break; @@ -1389,7 +1389,7 @@ get_length_from_term (StThemeNode *node, } else { - double resolution = clutter_backend_get_resolution (clutter_get_default_backend ()); + double resolution = st_theme_context_get_resolution (node->context); *length = num->val * multiplier * (resolution / 72.) * font_size; } } @@ -3008,7 +3008,7 @@ font_size_from_term (StThemeNode *node, { if (term->type == TERM_IDENT) { - double resolution = clutter_backend_get_resolution (clutter_get_default_backend ()); + double resolution = st_theme_context_get_resolution (node->context); /* We work in integers to avoid double comparisons when converting back * from a size in pixels to a logical size. */ @@ -3225,7 +3225,7 @@ st_theme_node_get_font (StThemeNode *node) parent_size = pango_font_description_get_size (node->font_desc); if (!pango_font_description_get_size_is_absolute (node->font_desc)) { - double resolution = clutter_backend_get_resolution (clutter_get_default_backend ()); + double resolution = st_theme_context_get_resolution (node->context); parent_size *= (resolution / 72.); }