Well, I finally was able to get this solved, but not to my satisfaction. What I'm having to do is this:

if( ! NSContainsRect(rect, [self visibleRect]) && ! NSEqualRects (rect,[self visibleRect]) ) {
                [self setNeedsDisplayInRect:[self bounds]];
                [self displayIfNeededIgnoringOpacity];

                return;
        }

which in my opinion is a really dirt hack and I'd love to find a better (real?) solution. I'm pretty sure I'm just drawing twice between flushing the buffer, but I'm not sure how to debug it or prevent it. Anyone run into something like this?

Thanks,
->Ben
--
Ben Lachman
Acacia Tree Software

http://acaciatreesoftware.com

[EMAIL PROTECTED]
740.590.0009


On Feb 21, 2008, at 1:23 AM, Ben Lachman wrote:

I have a text view that contains a custom view which in turn contains an imageview and draws an image and a drop shadow. During selection the bits of the view which are not fully opaque (the shadow and the image) sometimes draw twice, producing a darker shadow than I want. This seems to alternate with normal looking drawing, so when I select text the shadow flickers between regular and darker along with the other non-opaque bits in the image. My method for drawing the shadow looks like this:

- (void)drawRect:(NSRect)rect {
        NSAffineTransform *xform = [NSAffineTransform transform];

        [NSGraphicsContext saveGraphicsState];

        [xform translateXBy:imageViewOrigin.x yBy:imageViewOrigin.y];
        [xform rotateByDegrees:rotation];
        [xform concat];

        NSShadow *imageShadow = [[NSShadow alloc] init];
        [imageShadow setShadowOffset:NSMakeSize(0,-5)];
        [imageShadow setShadowBlurRadius:5];
        [imageShadow setShadowColor:[NSColor blackColor]];
        
        [imageShadow set];
        [[NSColor whiteColor] set];
        [NSBezierPath fillRect:[imageView bounds]];
        [NSGraphicsContext restoreGraphicsState];
        
        [imageShadow release];  
}

I should note that the selection area does not overlap the view (custom shaped text container). Anyone have any ideas as to what might be going wrong?
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to