I'm doing some work on an app that records the screen, and I've run into an issue with CGRegisterScreenRefreshCallback and Keynote.
When Keynote presentations are being 'presented' full-screen, all callbacks registered with CGRegisterScreenRefreshCallback stop being called, and only resume again when the presentation stops. If I change Keynote's "Allow Exposé, Dashboard and others to use screen" (in the "Slideshow" panel), the callbacks are called as expected. I'd rather not have to ask users to change their keynote prefs, however.
I have noticed that if I just grab the full screen periodically anyway (I'm using CGWindowListCreateImage with kCGWindowListOptionAll and kCGNullWindowID), I do get the pixels from the Keynote presentation, so it would appear that I am "allowed" to see it. Changing to capture the entire screen all the time, though, is very inefficient.
Is there anything I can do to get CGRegisterScreenRefreshCallback callbacks to work in this situation? Is there another method I could be using to get dirty rects? Alternatively, is there a way I can know if the updates are going to stop, so that I can switch to just doing periodic grabs while the updates are not working?
Thanks,
Jamie. _______________________________________________
Do not post admin requests to the list. They will be ignored.
Quartz-dev mailing list (Quart...@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/quartz-dev/quartz-dev-garchive-50095%40googlegroups.com
This email sent to quartz-dev-g...@googlegroups.com