I'm uncomfortable with this way of disabling the KeyBindingManager. It seems fragile--there might be some case where we don't end up enabling it again.

Instead of trying to do this indirectly by defining a "beforeKeyBindingManagerKeydown" event, I think it might be better to just have a specific API on KeyBindingManager for clients to register/unregister temporary modal key handlers. Instead of using the normal event mechanism, these key handlers would just get passed the current event by KeyBindingManager, and would return true if they handled it or false if they didn't want to handle it. KeyBindingManager would then simply look at the return value and not continue if the handler returns true.

(It would be better if we could handle this using the normal event.stopPropagation()/stopImmediatePropagation() API, but unfortunately it looks like standard DOM events don't have a way to inspect whether an event has been stopProp'ed. jQuery events do, but I don't want to get into the business of converting native captured events to jQuery events...that might not even work :))