Reviewed by Darin.
authorsullivan <sullivan@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 11 Jan 2005 23:43:39 +0000 (23:43 +0000)
committersullivan <sullivan@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 11 Jan 2005 23:43:39 +0000 (23:43 +0000)
        - fixed <rdar://problem/3446838> REGRESSION (Mail): text decorations don't print
        (e.g. <strike>, underline)

        * WebCoreSupport.subproj/WebTextRenderer.m:
        (-[WebTextRenderer drawLineForCharacters:yOffset:withWidth:withColor:]):
        This bottleneck routine for drawing a line was setting the linewidth to 0 when
        the graphics context was not drawing to the screen. Thus, no lines. Now links
        are underlined when printing from Safari (as well as Mail).

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8337 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebKit/ChangeLog
WebKit/WebCoreSupport.subproj/WebTextRenderer.m

index 3234103a91a94fbfcf952a46593553fb8dcc916b..b2ee409caf34d7853cd89112ff22a7b85065c4e2 100644 (file)
@@ -1,3 +1,16 @@
+2005-01-11  John Sullivan  <sullivan@apple.com>
+
+        Reviewed by Darin.
+        
+        - fixed <rdar://problem/3446838> REGRESSION (Mail): text decorations don't print 
+        (e.g. <strike>, underline)
+
+        * WebCoreSupport.subproj/WebTextRenderer.m:
+        (-[WebTextRenderer drawLineForCharacters:yOffset:withWidth:withColor:]):
+        This bottleneck routine for drawing a line was setting the linewidth to 0 when
+        the graphics context was not drawing to the screen. Thus, no lines. Now links
+        are underlined when printing from Safari (as well as Mail).
+
 2005-01-11  Richard Williamson   <rjw@apple.com>
 
        Fixed 3949145.  CG has a much faster API for drawing lines.
index 77284e0e6ec60d4aa0b0b9590967312ae2c427bd..6715538135e11dce362a5cb66e4c1e1f54350f56 100644 (file)
@@ -542,7 +542,6 @@ static BOOL alwaysUseATSU = NO;
 
     NSGraphicsContext *graphicsContext = [NSGraphicsContext currentContext];
     CGContextRef cgContext;
-    float lineWidth;
 
     // This will draw the text from the top of the bounding box down.
     // Qt expects to draw from the baseline.
@@ -551,18 +550,16 @@ static BOOL alwaysUseATSU = NO;
     
     BOOL flag = [graphicsContext shouldAntialias];
 
-    [graphicsContext setShouldAntialias: NO];
-
+    // We don't want antialiased lines on screen, but we do when printing (else they are too thick)
+    if ([graphicsContext isDrawingToScreen]) {
+        [graphicsContext setShouldAntialias:NO];
+    }
+    
     [color set];
 
     cgContext = (CGContextRef)[graphicsContext graphicsPort];
-    lineWidth = 0.0;
-    if ([graphicsContext isDrawingToScreen] && lineWidth == 0.0) {
-        CGSize size = CGSizeApplyAffineTransform(CGSizeMake(1.0, 1.0), CGAffineTransformInvert(CGContextGetCTM(cgContext)));
-        lineWidth = size.width;
-    }
-    
-    CGContextSetLineWidth(cgContext, lineWidth);
+    CGSize size = CGSizeApplyAffineTransform(CGSizeMake(1.0, 1.0), CGAffineTransformInvert(CGContextGetCTM(cgContext)));
+    CGContextSetLineWidth(cgContext, size.width);
 
 #if BUILDING_ON_PANTHER            
     CGContextMoveToPoint(cgContext, point.x, point.y + [self lineSpacing] + 1.5 - [self descent] + yOffset);