summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Lillqvist <tml@novell.com>2005-09-22 14:49:03 +0000
committerTor Lillqvist <tml@src.gnome.org>2005-09-22 14:49:03 +0000
commit6958d8df04a66a2a8e31bdbfd6d20cbe7bcb2a4c (patch)
treecabc10798cc880f9a24fceeef45b194bd6a7650c
parentbe9471b58ab9045d16fbecbccc6bfe15330a02b1 (diff)
downloadpango-6958d8df04a66a2a8e31bdbfd6d20cbe7bcb2a4c.tar.gz
Move the calculation of dpi and size earlier. Use the size variable instad
2005-09-22 Tor Lillqvist <tml@novell.com> * pango/pangocairo-win32font.c (_pango_cairo_win32_font_new): Move the calculation of dpi and size earlier. Use the size variable instad of isize when looking for a matching cached font. Isize was supposed to be the same as size anyway. (Actually it was the same only when LOGPIXELSY equalled 96 (which often is the default value), see below.) * pango/pangocairo-win32fontmap.c (pango_cairo_win32_font_map_init): Set dpi to the LOGPIXELSY value instead of hardcoding 96.
-rw-r--r--ChangeLog12
-rw-r--r--pango/pangocairo-win32font.c36
-rw-r--r--pango/pangocairo-win32fontmap.c2
3 files changed, 29 insertions, 21 deletions
diff --git a/ChangeLog b/ChangeLog
index 8b93a0e3..92c4d4f9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2005-09-22 Tor Lillqvist <tml@novell.com>
+
+ * pango/pangocairo-win32font.c (_pango_cairo_win32_font_new): Move
+ the calculation of dpi and size earlier. Use the size variable
+ instad of isize when looking for a matching cached font. Isize was
+ supposed to be the same as size anyway. (Actually it was the same
+ only when LOGPIXELSY equalled 96 (which often is the default
+ value), see below.)
+
+ * pango/pangocairo-win32fontmap.c (pango_cairo_win32_font_map_init):
+ Set dpi to the LOGPIXELSY value instead of hardcoding 96.
+
2005-09-14 Tor Lillqvist <tml@novell.com>
* pango/pangocairo-win32font.c: Use identical glyph extents
diff --git a/pango/pangocairo-win32font.c b/pango/pangocairo-win32font.c
index 37136b06..e5d8dc0d 100644
--- a/pango/pangocairo-win32font.c
+++ b/pango/pangocairo-win32font.c
@@ -436,22 +436,33 @@ _pango_cairo_win32_font_new (PangoCairoWin32FontMap *cwfontmap,
#ifdef USE_FACE_CACHED_FONTS
PangoWin32FontMap *win32fontmap;
GSList *tmp_list;
- int isize;
#endif
g_return_val_if_fail (PANGO_IS_CAIRO_WIN32_FONT_MAP (cwfontmap), NULL);
+ size = (double) pango_font_description_get_size (desc) / PANGO_SCALE;
+
+ if (context)
+ {
+ dpi = pango_cairo_context_get_resolution (context);
+
+ if (dpi <= 0)
+ dpi = cwfontmap->dpi;
+ }
+ else
+ dpi = cwfontmap->dpi;
+
+ if (!pango_font_description_get_size_is_absolute (desc))
+ size *= dpi / 72.;
+
#ifdef USE_FACE_CACHED_FONTS
win32fontmap = PANGO_WIN32_FONT_MAP (cwfontmap);
- isize = pango_font_description_get_size (desc);
- if (!pango_font_description_get_size_is_absolute (desc))
- isize = (int) 0.5 + (isize * PANGO_SCALE) / win32fontmap->resolution;
tmp_list = face->cached_fonts;
while (tmp_list)
{
win32font = tmp_list->data;
- if (ABS (win32font->size- isize) < 2)
+ if (ABS (win32font->size - size * PANGO_SCALE) < 2)
{
g_object_ref (win32font);
if (win32font->in_cache)
@@ -474,21 +485,6 @@ _pango_cairo_win32_font_new (PangoCairoWin32FontMap *cwfontmap,
face->cached_fonts = g_slist_prepend (face->cached_fonts, win32font);
#endif
- size = (double) pango_font_description_get_size (desc) / PANGO_SCALE;
-
- if (context)
- {
- dpi = pango_cairo_context_get_resolution (context);
-
- if (dpi <= 0)
- dpi = cwfontmap->dpi;
- }
- else
- dpi = cwfontmap->dpi;
-
- if (!pango_font_description_get_size_is_absolute (desc))
- size *= dpi / 72.;
-
/* FIXME: This is a pixel size, so not really what we want for describe(),
* but it's what we need when computing the scale factor.
*/
diff --git a/pango/pangocairo-win32fontmap.c b/pango/pangocairo-win32fontmap.c
index 51393efa..9449fda7 100644
--- a/pango/pangocairo-win32fontmap.c
+++ b/pango/pangocairo-win32fontmap.c
@@ -104,5 +104,5 @@ pango_cairo_win32_font_map_class_init (PangoCairoWin32FontMapClass *class)
static void
pango_cairo_win32_font_map_init (PangoCairoWin32FontMap *cwfontmap)
{
- cwfontmap->dpi = 96.0;
+ cwfontmap->dpi = GetDeviceCaps (pango_win32_get_dc (), LOGPIXELSY);
}