Key binding event handlers can call abortKeyBinding on the event object to abort and try the next binding

This commit is contained in:
Nathan Sobo
2012-06-20 22:08:16 -06:00
parent c276a4029e
commit e1309f7c66
2 changed files with 25 additions and 2 deletions

View File

@@ -51,7 +51,7 @@ class Keymap
for bindingSet in candidateBindingSets
command = bindingSet.commandForEvent(event)
if command
@triggerCommandEvent(event, command)
continue if @triggerCommandEvent(event, command)
return false
else if command == false
return false
@@ -66,7 +66,12 @@ class Keymap
triggerCommandEvent: (keyEvent, commandName) ->
commandEvent = $.Event(commandName)
commandEvent.keyEvent = keyEvent
aborted = false
commandEvent.abortKeyBinding = ->
@stopImmediatePropagation()
aborted = true
$(keyEvent.target).trigger(commandEvent)
aborted
multiKeystrokeStringForEvent: (event) ->
currentKeystroke = @keystrokeStringForEvent(event)