Re: How to Optimize drawRect: for obscured views?
Re: How to Optimize drawRect: for obscured views?
- Subject: Re: How to Optimize drawRect: for obscured views?
- From: Andrew Farmer <email@hidden>
- Date: Sat, 11 Nov 2006 17:00:16 -0800
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:
This email sent to email@hidden