Thanks Phil. I played around with it briefly and it seems like an improvement to me.
One thing I noticed on both the current svn and this is that in RGB zebra, over-exposed blue appears to be indicated in red, while green is indicated with green. On pre-digic 6 cams, blue is indicated with blue.
Also, since (AFAIK) the "draw over" option doesn't work in D6, maybe we should ifdef them out of the menu.
I'm not clear to what extent the "Restore original screen" and "restore OSD" are expected to work, but in blink mode, your new code does appear to effectively preserve the CHDK OSD. In the old code, the OSD elements flash horribly they are checked.