@@ -165,41 +165,28 @@ void CInput::MouseUpdate()
165
165
}
166
166
}
167
167
168
- BOOL b_altF4 = FALSE ;
169
168
void CInput::KeyUpdate ()
170
169
{
171
- if (b_altF4)
172
- return ;
173
-
174
- const Uint8* state = SDL_GetKeyboardState (NULL );
175
- #ifndef _EDITOR
176
- bool b_alt_tab = false ;
177
-
178
- if (!b_altF4 && state[SDL_SCANCODE_F4] && (state[SDL_SCANCODE_RALT] || state[SDL_SCANCODE_LALT]))
170
+ SDL_Event event;
171
+ while (SDL_PeepEvents (&event, 1 , SDL_GETEVENT, SDL_KEYDOWN, SDL_KEYMAPCHANGED))
179
172
{
180
- b_altF4 = TRUE ;
181
- Engine.Event .Defer (" KERNEL:disconnect" );
182
- Engine.Event .Defer (" KERNEL:quit" );
183
- SDL_Event ev;
184
- ev.type = SDL_QUIT;
185
- SDL_PushEvent (&ev);
186
- }
187
- #endif
173
+ switch (event.type )
174
+ {
175
+ case SDL_KEYDOWN:
176
+ KBState[event.key .keysym .scancode ] = true ;
177
+ cbStack.back ()->IR_OnKeyboardPress (event.key .keysym .scancode );
178
+ break ;
188
179
189
- #ifndef _EDITOR
190
- if (Device.dwPrecacheFrame == 0 )
191
- #endif
192
- {
193
- #ifndef _EDITOR
194
- if (state[SDL_SCANCODE_TAB] && (iGetAsyncKeyState (SDL_SCANCODE_LALT) || iGetAsyncKeyState (SDL_SCANCODE_RALT)))
195
- b_alt_tab = true ;
196
- #endif
180
+ case SDL_KEYUP:
181
+ KBState[event.key .keysym .scancode ] = false ;
182
+ cbStack.back ()->IR_OnKeyboardRelease (event.key .keysym .scancode );
183
+ break ;
184
+ }
197
185
}
198
186
199
- #ifndef _EDITOR
200
- if (b_alt_tab)
201
- SDL_MinimizeWindow (Device.m_sdlWnd );
202
- #endif
187
+ for (u32 i = 0 ; i < COUNT_KB_BUTTONS; ++i)
188
+ if (KBState[i])
189
+ cbStack.back ()->IR_OnKeyboardHold (i);
203
190
}
204
191
205
192
bool CInput::get_key_name (int dik, LPSTR dest_str, int dest_sz)
@@ -322,51 +309,14 @@ void CInput::OnAppDeactivate(void)
322
309
323
310
void CInput::OnFrame (void )
324
311
{
325
- SDL_Event event;
326
-
327
312
stats.FrameStart ();
328
313
stats.FrameTime .Begin ();
329
314
dwCurTime = RDEVICE.TimerAsync_MMT ();
330
315
331
316
if (Device.dwPrecacheFrame == 0 )
332
317
{
333
318
MouseUpdate ();
334
- }
335
-
336
- while (SDL_PeepEvents (&event, 1 , SDL_GETEVENT, SDL_KEYDOWN, SDL_KEYMAPCHANGED))
337
- {
338
- switch (event.type )
339
- {
340
- case SDL_KEYDOWN: {
341
- KBState[event.key .keysym .scancode ] = TRUE ;
342
- #ifndef _EDITOR
343
- if (Device.dwPrecacheFrame == 0 )
344
- #endif
345
- {
346
- cbStack.back ()->IR_OnKeyboardPress (event.key .keysym .scancode );
347
- }
348
- }
349
- break ;
350
- case SDL_KEYUP: {
351
- KBState[event.key .keysym .scancode ] = FALSE ;
352
- #ifndef _EDITOR
353
- if (Device.dwPrecacheFrame == 0 )
354
- #endif
355
- {
356
- cbStack.back ()->IR_OnKeyboardRelease (event.key .keysym .scancode );
357
- }
358
- }
359
- break ;
360
- }
361
- }
362
-
363
- #ifndef _EDITOR
364
- if (Device.dwPrecacheFrame == 0 )
365
- #endif
366
- {
367
- for (u32 i = 0 ; i < COUNT_KB_BUTTONS; i++)
368
- if (KBState[i])
369
- cbStack.back ()->IR_OnKeyboardHold (i);
319
+ KeyUpdate ();
370
320
}
371
321
372
322
stats.FrameTime .End ();
0 commit comments