Avoid dispatching to fn on press if wantsTyped.

Normally we only dispatch the typed character to the default fn, which
naturally ends up being dispatched on typed rather than pressed. But I finally
added a fn which could be dispatched on pressed, but which wants the typed
char, and discovered that it was getting "\0" as its typed char, due to it
being prematurely dispatched on key press rather than key typed. Now we
properly defer the dispatch until the typed event comes in and we know what
UTF-8 string the OS "means" for the pressed key(s).