@@ -232,10 +232,26 @@ class KeybindManager {
232232 } ) ;
233233 }
234234
235+ runDomainCallbacks ( event : WaveKeyboardEvent , curDomainCallbacks : Map < string , KeybindCallback > ) {
236+ for ( let key of curDomainCallbacks . keys ( ) ) {
237+ let callback = curDomainCallbacks . get ( key ) ;
238+ if ( callback != null ) {
239+ callback ( event ) ;
240+ }
241+ }
242+ }
243+
235244 processLevel ( nativeEvent : any , event : WaveKeyboardEvent , keybindsArray : Array < Keybind > ) : boolean {
236245 // iterate through keybinds in backwards order
246+ let domainCallbacksToRun : Map < string , KeybindCallback > = new Map ( ) ;
237247 for ( let index = keybindsArray . length - 1 ; index >= 0 ; index -- ) {
238248 let curKeybind = keybindsArray [ index ] ;
249+ if ( this . domainCallbacks . has ( curKeybind . domain ) ) {
250+ let curDomainCallback = this . domainCallbacks . get ( curKeybind . domain ) ;
251+ if ( curDomainCallback != null ) {
252+ domainCallbacksToRun . set ( curKeybind . domain , curDomainCallback ) ;
253+ }
254+ }
239255 if ( this . checkKeyPressed ( event , curKeybind . keybinding ) ) {
240256 if ( DumpLogs ) {
241257 console . log ( "keybind found" , curKeybind ) ;
@@ -246,23 +262,18 @@ class KeybindManager {
246262 shouldReturn = curKeybind . callback ( event ) ;
247263 shouldRunCommand = false ;
248264 }
249- if ( ! shouldReturn && this . domainCallbacks . has ( curKeybind . domain ) ) {
250- shouldRunCommand = false ;
251- let curDomainCallback = this . domainCallbacks . get ( curKeybind . domain ) ;
252- if ( curDomainCallback != null ) {
253- shouldReturn = curDomainCallback ( event ) ;
254- }
255- }
256265 if ( shouldRunCommand ) {
257266 shouldReturn = this . runSlashCommand ( curKeybind ) ;
258267 }
259268 if ( shouldReturn ) {
260269 nativeEvent . preventDefault ( ) ;
261270 nativeEvent . stopPropagation ( ) ;
271+ this . runDomainCallbacks ( event , domainCallbacksToRun ) ;
262272 return true ;
263273 }
264274 }
265275 }
276+ this . runDomainCallbacks ( event , domainCallbacksToRun ) ;
266277 return false ;
267278 }
268279
@@ -502,7 +513,7 @@ class KeybindManager {
502513 return foundKeybind ;
503514 }
504515
505- getKeyPressEventForDomain ( domain : string , callback : KeybindCallback ) {
516+ registerDomainCallback ( domain : string , callback : KeybindCallback ) {
506517 if ( callback == null ) {
507518 console . log ( "domain callback can't be null" ) ;
508519 }
0 commit comments