diff --git a/ChangeLog b/ChangeLog index f8a34e60b..d46e1f042 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2004-07-11 14:17 Alexander Malmberg + + * Source/NSLayoutManager.m (-drawGlyphsForGlyphRange:atPoint:): + When printing, position each glyph explicitly. + 2004-07-09 Chad Hardin * Source/GNUmakefile: * Headers/AppKit/NSPageLayout.h: diff --git a/Source/NSLayoutManager.m b/Source/NSLayoutManager.m index fd837685b..852602215 100644 --- a/Source/NSLayoutManager.m +++ b/Source/NSLayoutManager.m @@ -1302,7 +1302,7 @@ container #define GBUF_SIZE 16 /* TODO: tweak */ NSGlyph gbuf[GBUF_SIZE]; - int gbuf_len; + int gbuf_len, gbuf_size; NSPoint gbuf_point; NSView *controlView = nil; @@ -1311,6 +1311,11 @@ container return; [self _doLayoutToGlyph: range.location + range.length - 1]; + if ([ctxt isDrawingToScreen]) + gbuf_size = GBUF_SIZE; + else + gbuf_size = 16; + for (i = 0, tc = textcontainers; i < num_textcontainers; i++, tc++) if (tc->pos + tc->length > range.location) break; @@ -1467,10 +1472,10 @@ container } else { - if (gbuf_len == GBUF_SIZE) + if (gbuf_len == gbuf_size) { DPSmoveto(ctxt, gbuf_point.x, gbuf_point.y); - GSShowGlyphs(ctxt, gbuf, GBUF_SIZE); + GSShowGlyphs(ctxt, gbuf, gbuf_size); DPSnewpath(ctxt); gbuf_len = 0; gbuf_point = p;