File tree 2 files changed +24
-6
lines changed
2 files changed +24
-6
lines changed Original file line number Diff line number Diff line change @@ -17,6 +17,11 @@ import { createAction } from 'common/redux';
17
17
import { setupDrag } from './drag' ;
18
18
import { globalEvents } from './events' ;
19
19
import { focusMap } from './focus' ;
20
+ import {
21
+ releaseHeldKeys ,
22
+ startKeyPassthrough ,
23
+ stopKeyPassthrough ,
24
+ } from './hotkeys' ;
20
25
import { createLogger } from './logging' ;
21
26
import { resumeRenderer , suspendRenderer } from './renderer' ;
22
27
@@ -177,6 +182,8 @@ export const backendMiddleware = (store) => {
177
182
Byond . winset ( Byond . windowId , {
178
183
'is-visible' : false ,
179
184
} ) ;
185
+ stopKeyPassthrough ( ) ;
186
+ releaseHeldKeys ( ) ;
180
187
setTimeout ( ( ) => focusMap ( ) ) ;
181
188
}
182
189
@@ -203,6 +210,7 @@ export const backendMiddleware = (store) => {
203
210
logger . log ( 'backend/update' , payload ) ;
204
211
// Signal renderer that we have resumed
205
212
resumeRenderer ( ) ;
213
+ startKeyPassthrough ( ) ;
206
214
// Setup drag
207
215
setupDrag ( payload . config ?. window ?. fancy ) ;
208
216
// We schedule this for the next tick here because resizing and unhiding
Original file line number Diff line number Diff line change @@ -192,12 +192,22 @@ export const setupHotKeys = () => {
192
192
globalEvents . on ( 'window-blur' , ( ) => {
193
193
releaseHeldKeys ( ) ;
194
194
} ) ;
195
- globalEvents . on ( 'key' , ( key : KeyEvent ) => {
196
- for ( const keyListener of keyListeners ) {
197
- keyListener ( key ) ;
198
- }
199
- handlePassthrough ( key ) ;
200
- } ) ;
195
+ startKeyPassthrough ( ) ;
196
+ } ;
197
+
198
+ export const startKeyPassthrough = ( ) => {
199
+ globalEvents . on ( 'key' , keyEvent ) ;
200
+ } ;
201
+
202
+ export const stopKeyPassthrough = ( ) => {
203
+ globalEvents . off ( 'key' , keyEvent ) ;
204
+ } ;
205
+
206
+ const keyEvent = ( key : KeyEvent ) => {
207
+ for ( const keyListener of keyListeners ) {
208
+ keyListener ( key ) ;
209
+ }
210
+ handlePassthrough ( key ) ;
201
211
} ;
202
212
203
213
/**
You can’t perform that action at this time.
0 commit comments