Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to Optimize drawRect: for obscured views?



On 11 Nov 06, at 16:46, E. Wing wrote:
I have a custom view which may have animation. I use an NSTimer to
fire periodically and I check to see if anything is animating in my
view. If so, I call setNeedsDisplay:YES.

If I minimize or hide the application, I notice that drawRect: stops
being called by the system (which I consider good). But if my
view/window is completely obscured by another window (say another
window from my app or from another application such as Safari) , I
noticed that drawRect: is still being called.

Yes. That's intentional; while your view may not be exposed at that given moment, it's entirely possible that something the user does - like hitting the Exposé button or moving another window out of the way - may show your view's contents. Due to the way that OS X handles windows, your view *does not* have to redraw when this happens; it gets this functionality "for free" from the window's backing store.

As far as a solution goes? You could check to see if the window
containing the view is frontmost, and slow down the drawing timer
if it isn't. This probably isn't ideal (some users may want it to
update normally in the background!), so you may want to make it
optional, and configurable in the preferences. _______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/email@hidden

This email sent to email@hidden
References: 
 >How to Optimize drawRect: for obscured views? (From: "E. Wing" <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.