Perhaps someone familiar with the code can sanity check me.
I'm working on tracking down character spacing problems using
abiword 2.6.6 on FreeBSD 6.4.  For example if I start abiword
and enter "Hello" all the letters overlap by about 90% (i.e.
what I see is a black ink smudge).
I believe the intent of GR_UnixPangoGraphics::_scaleCharacterMetrics
is to create a copy of the font metrics which has been adjusted to
reflect the current scale factor.  However I'm puzzled by:
  RI.m_pScaledGlyphs->glyphs[i].geometry.width =
    _tduX(RI.m_pGlyphs->glyphs[i].geometry.width);
_tduX is described as converting layout units to device units while
taking account of the X-scroll offset.
  1) I believe RI.m_pGlyphs->glyphs[i].geometry.width is PangoGlyphUnit,
     not layout units.
  2) I believe that RI.m_pScaledGlyphs->glyphs[i].geometry.width is
     PangoGlyphUnit, not a device units.
  3) I'm unclear how the X-scroll offset affects the width of a character.
Doing something like:
  RI.m_pScaledGlyphs->glyphs[i].geometry.width =
    (int)((double)RI.m_pGlyphs->glyphs[i].geometry.width * iZoom / 100);
seems to make more sense and produces a more reasonable display on my
system.
Thoughts?
-- John
-------------------------------------------------------------------------
|   Feith Systems  |   Voice: 1-215-646-8000  |  Email: john@feith.com  |
|    John Wehle    |     Fax: 1-215-540-5495  |                         |
-------------------------------------------------------------------------
Received on Fri Jan 30 10:16:03 2009
This archive was generated by hypermail 2.1.8 : Fri Jan 30 2009 - 10:16:03 CET