From 6e8698dcb9a9b9a98d8b1a644c84fcb737f99bdc Mon Sep 17 00:00:00 2001 From: David Kastrup <dak@gnu.org> Date: Thu, 1 Aug 2013 12:20:24 +0200 Subject: [PATCH] Issue 3483: Pango font size should be calculated using rounding So far, pango font size has been calculated using truncation. Since the calculation of font size may involve conversion of magnifications to font-size and back, numerical errors can easily throw the calculation slightly off. For that reason, rounding is the appropriate option here. --- lily/pango-select.cc | 4 +++- lily/paper-def.cc | 7 ++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/lily/pango-select.cc b/lily/pango-select.cc index cb05b0c183..082bcd8243 100644 --- a/lily/pango-select.cc +++ b/lily/pango-select.cc @@ -19,6 +19,7 @@ #include "dimensions.hh" #include "all-font-metrics.hh" +#include "libc-extension.hh" #include "output-def.hh" #include "pango-font.hh" @@ -54,7 +55,8 @@ properties_to_pango_description (SCM chain, Real text_size) 0.0); Real size = text_size * pow (2.0, step / 6.0); - pango_font_description_set_size (description, gint (size * PANGO_SCALE)); + pango_font_description_set_size (description, + gint (my_round (size * PANGO_SCALE))); return description; } diff --git a/lily/paper-def.cc b/lily/paper-def.cc index aa3a296c1f..4c6dc86ebe 100644 --- a/lily/paper-def.cc +++ b/lily/paper-def.cc @@ -18,6 +18,7 @@ */ #include "dimensions.hh" +#include "libc-extension.hh" #include "output-def.hh" #include "modified-font-metric.hh" #include "pango-font.hh" @@ -92,9 +93,9 @@ find_pango_font (Output_def *layout, SCM descr, Real factor) PangoFontDescription *description = pango_font_description_from_string (scm_i_string_chars (descr)); - pango_font_description_set_size (description, - gint (factor * - pango_font_description_get_size (description))); + pango_font_description_set_size + (description, + gint (my_round (factor * pango_font_description_get_size (description)))); Font_metric *fm = all_fonts_global->find_pango_font (description, output_scale (layout)); -- 2.39.5