[pango] Bug 695163 - pangocairo hexboxes don't take actual font size into account
- From: Behdad Esfahbod <behdad src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pango] Bug 695163 - pangocairo hexboxes don't take actual font size into account
- Date: Thu, 30 Apr 2015 15:59:06 +0000 (UTC)
commit 9f00b5319325839ccf377043feaba33635a67d7a
Author: Behdad Esfahbod <behdad behdad org>
Date: Thu Apr 30 11:58:54 2015 -0400
Bug 695163 - pangocairo hexboxes don't take actual font size into account
pango/pangocairo-font.c | 17 ++++++++++++-----
1 files changed, 12 insertions(+), 5 deletions(-)
---
diff --git a/pango/pangocairo-font.c b/pango/pangocairo-font.c
index 8164840..97df00c 100644
--- a/pango/pangocairo-font.c
+++ b/pango/pangocairo-font.c
@@ -376,8 +376,8 @@ _pango_cairo_font_private_get_hex_box_info (PangoCairoFontPrivate *cf_priv)
double size, mini_size;
PangoFontDescription *desc;
cairo_scaled_font_t *scaled_font, *scaled_mini_font;
- PangoMatrix pango_ctm;
- cairo_matrix_t cairo_ctm;
+ PangoMatrix pango_ctm, pango_font_matrix;
+ cairo_matrix_t cairo_ctm, cairo_font_matrix;
/*PangoGravity gravity;*/
if (!cf_priv)
@@ -394,10 +394,10 @@ _pango_cairo_font_private_get_hex_box_info (PangoCairoFontPrivate *cf_priv)
font_options = cairo_font_options_create ();
desc = pango_font_describe_with_absolute_size ((PangoFont *)cf_priv->cfont);
- size = pango_font_description_get_size (desc) / (1.*PANGO_SCALE);
/*gravity = pango_font_description_get_gravity (desc);*/
cairo_scaled_font_get_ctm (scaled_font, &cairo_ctm);
+ cairo_scaled_font_get_font_matrix (scaled_font, &cairo_font_matrix);
cairo_scaled_font_get_font_options (scaled_font, font_options);
/* I started adding support for vertical hexboxes here, but it's too much
* work. Easier to do with cairo user fonts and vertical writing mode
@@ -410,8 +410,15 @@ _pango_cairo_font_private_get_hex_box_info (PangoCairoFontPrivate *cf_priv)
pango_ctm.yy = cairo_ctm.yy;
pango_ctm.x0 = cairo_ctm.x0;
pango_ctm.y0 = cairo_ctm.y0;
-
- size /= pango_matrix_get_font_scale_factor (&pango_ctm);
+ pango_font_matrix.xx = cairo_font_matrix.xx;
+ pango_font_matrix.yx = cairo_font_matrix.yx;
+ pango_font_matrix.xy = cairo_font_matrix.xy;
+ pango_font_matrix.yy = cairo_font_matrix.yy;
+ pango_font_matrix.x0 = cairo_font_matrix.x0;
+ pango_font_matrix.y0 = cairo_font_matrix.y0;
+
+ size = pango_matrix_get_font_scale_factor (&pango_font_matrix) /
+ pango_matrix_get_font_scale_factor (&pango_ctm);
if (is_hinted)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]