Add initial frame command
Fix argument splitting for commands
Minor style nits
Get the context once

Rather than calling multiple is_XXX functions for hit tests, get it once
and check it manually.

It's preemptive, but probably easy to miss.
Rename zoom_type to zoom_text_only