From de8a66d4ce5758d8e34cc7a4684ee280d2dafe9b Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Mon, 26 Mar 2012 11:14:31 -0300 Subject: [PATCH] st: Remove our own font DPI resolution implementation Clutter has had clutter_backend_get_resolution for a little while. https://bugzilla.gnome.org/show_bug.cgi?id=672807 --- src/shell-global.c | 36 ---------------------- src/st/st-theme-context.c | 63 --------------------------------------- src/st/st-theme-context.h | 4 --- src/st/st-theme-node.c | 8 ++--- src/st/test-theme.c | 1 - 5 files changed, 4 insertions(+), 108 deletions(-) diff --git a/src/shell-global.c b/src/shell-global.c index 0a5ce864e..be14fa3b2 100644 --- a/src/shell-global.c +++ b/src/shell-global.c @@ -805,38 +805,9 @@ global_stage_after_paint (ClutterStage *stage, "clutter.stagePaintDone"); } -static void -update_font_options (GtkSettings *settings, - ClutterStage *stage) -{ - StThemeContext *context; - gint dpi; - - g_object_get (settings, - "gtk-xft-dpi", &dpi, - NULL); - - context = st_theme_context_get_for_stage (stage); - - if (dpi != -1) - /* GTK stores resolution as 1024 * dots/inch */ - st_theme_context_set_resolution (context, dpi / 1024); - else - st_theme_context_set_default_resolution (context); -} - -static void -settings_notify_cb (GtkSettings *settings, - GParamSpec *pspec, - gpointer data) -{ - update_font_options (settings, CLUTTER_STAGE (data)); -} - static void shell_fonts_init (ClutterStage *stage) { - GtkSettings *settings; CoglPangoFontMap *fontmap; /* Disable text mipmapping; it causes problems on pre-GEM Intel @@ -846,13 +817,6 @@ shell_fonts_init (ClutterStage *stage) */ fontmap = COGL_PANGO_FONT_MAP (clutter_get_font_map ()); cogl_pango_font_map_set_use_mipmapping (fontmap, FALSE); - - settings = gtk_settings_get_default (); - g_object_connect (settings, - "signal::notify::gtk-xft-dpi", - G_CALLBACK (settings_notify_cb), stage, - NULL); - update_font_options (settings, stage); } /* This is an IBus workaround. The flow of events with IBus is that every time diff --git a/src/st/st-theme-context.c b/src/st/st-theme-context.c index 7b676b7f7..a73679eb5 100644 --- a/src/st/st-theme-context.c +++ b/src/st/st-theme-context.c @@ -28,7 +28,6 @@ struct _StThemeContext { GObject parent; - double resolution; PangoFontDescription *font; StThemeNode *root_node; StTheme *theme; @@ -38,7 +37,6 @@ struct _StThemeContextClass { GObjectClass parent_class; }; -#define DEFAULT_RESOLUTION 96. #define DEFAULT_FONT "sans-serif 10" enum @@ -93,7 +91,6 @@ st_theme_context_class_init (StThemeContextClass *klass) static void st_theme_context_init (StThemeContext *context) { - context->resolution = DEFAULT_RESOLUTION; context->font = pango_font_description_from_string (DEFAULT_FONT); g_signal_connect (st_texture_cache_get_default (), @@ -232,66 +229,6 @@ st_theme_context_get_theme (StThemeContext *context) return context->theme; } -/** - * st_theme_context_set_resolution: - * @context: a #StThemeContext - * @resolution: resolution of the context (number of pixels in an "inch") - * - * Sets the resolution of the theme context. This is the scale factor - * used to convert between points and the length units pt, in, and cm. - * This does not necessarily need to correspond to the actual number - * resolution of the device. A value of 72. means that points and - * pixels are identical. The default value is 96. - */ -void -st_theme_context_set_resolution (StThemeContext *context, - double resolution) -{ - g_return_if_fail (ST_IS_THEME_CONTEXT (context)); - - if (resolution == context->resolution) - return; - - context->resolution = resolution; - st_theme_context_changed (context); -} - -/** - * st_theme_context_set_default_resolution: - * @context: a #StThemeContext - * - * Sets the resolution of the theme context to the default value of 96. - * See st_theme_context_set_resolution(). - */ -void -st_theme_context_set_default_resolution (StThemeContext *context) -{ - g_return_if_fail (ST_IS_THEME_CONTEXT (context)); - - if (context->resolution == DEFAULT_RESOLUTION) - return; - - context->resolution = DEFAULT_RESOLUTION; - st_theme_context_changed (context); -} - -/** - * st_theme_context_get_resolution: - * @context: a #StThemeContext - * - * Gets the current resolution of the theme context. - * See st_theme_context_set_resolution(). - * - * Return value: the resolution (in dots-per-"inch") - */ -double -st_theme_context_get_resolution (StThemeContext *context) -{ - g_return_val_if_fail (ST_IS_THEME_CONTEXT (context), DEFAULT_RESOLUTION); - - return context->resolution; -} - /** * st_theme_context_set_font: * @context: a #StThemeContext diff --git a/src/st/st-theme-context.h b/src/st/st-theme-context.h index 8805fb19b..a0b73d9ff 100644 --- a/src/st/st-theme-context.h +++ b/src/st/st-theme-context.h @@ -56,10 +56,6 @@ void st_theme_context_set_theme (StThemeContext StTheme *theme); StTheme * st_theme_context_get_theme (StThemeContext *context); -void st_theme_context_set_resolution (StThemeContext *context, - gdouble resolution); -void st_theme_context_set_default_resolution (StThemeContext *context); -double st_theme_context_get_resolution (StThemeContext *context); void st_theme_context_set_font (StThemeContext *context, const PangoFontDescription *font); const PangoFontDescription *st_theme_context_get_font (StThemeContext *context); diff --git a/src/st/st-theme-node.c b/src/st/st-theme-node.c index 47b117c2f..765a3ee66 100644 --- a/src/st/st-theme-node.c +++ b/src/st/st-theme-node.c @@ -820,7 +820,7 @@ get_length_from_term (StThemeNode *node, break; case POINTS: { - double resolution = st_theme_context_get_resolution (node->context); + double resolution = clutter_backend_get_resolution (clutter_get_default_backend ()); *length = num->val * multiplier * (resolution / 72.); } break; @@ -842,7 +842,7 @@ get_length_from_term (StThemeNode *node, } else { - double resolution = st_theme_context_get_resolution (node->context); + double resolution = clutter_backend_get_resolution (clutter_get_default_backend ()); *length = num->val * multiplier * (resolution / 72.) * font_size; } } @@ -2139,7 +2139,7 @@ font_size_from_term (StThemeNode *node, { if (term->type == TERM_IDENT) { - double resolution = st_theme_context_get_resolution (node->context); + double resolution = clutter_backend_get_resolution (clutter_get_default_backend ()); /* We work in integers to avoid double comparisons when converting back * from a size in pixels to a logical size. */ @@ -2346,7 +2346,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 = st_theme_context_get_resolution (node->context); + double resolution = clutter_backend_get_resolution (clutter_get_default_backend ()); parent_size *= (resolution / 72.); } diff --git a/src/st/test-theme.c b/src/st/test-theme.c index d6a8f7b3e..fa85ebea5 100644 --- a/src/st/test-theme.c +++ b/src/st/test-theme.c @@ -435,7 +435,6 @@ main (int argc, char **argv) stage = clutter_stage_new (); context = st_theme_context_get_for_stage (CLUTTER_STAGE (stage)); st_theme_context_set_theme (context, theme); - st_theme_context_set_resolution (context, 96.); st_theme_context_set_font (context, pango_font_description_from_string ("sans-serif 12"));