Skip to content

Commit b4a46ec

Browse files
committed
define HAVE_KBDJOYPAD to block double raw kbd keys
1 parent dac7a2d commit b4a46ec

1 file changed

Lines changed: 50 additions & 0 deletions

File tree

libretro/core/core-mapper.cpp

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -403,6 +403,56 @@ void Process_keyboard()
403403

404404
if (KEYBOARD_EMULATED==1)
405405
{
406+
#ifdef HAVE_KBDJOYPAD
407+
int i1 = 0;
408+
int i2 = 0;
409+
for(i=0;i<320;i++)
410+
{
411+
if (input_state_cb(0, RETRO_DEVICE_KEYBOARD, 0,i)){
412+
Key_State[i]= 0x80;
413+
if (i1 == 0) i1 = i;
414+
else i2 = i;
415+
} else
416+
Key_State[i]= 0;
417+
}
418+
if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0,RETRO_DEVICE_ID_JOYPAD_MASK) && i1 && i2){
419+
switch (i1) {
420+
case RETROK_LALT:
421+
case RETROK_LCTRL:
422+
case RETROK_LSHIFT:
423+
case RETROK_SPACE:
424+
case RETROK_TAB:
425+
case RETROK_BACKSPACE:
426+
case RETROK_PAGEUP:
427+
case RETROK_PAGEDOWN:
428+
case RETROK_RSHIFT:
429+
case RETROK_RCTRL:
430+
case RETROK_RETURN:
431+
case RETROK_ESCAPE:
432+
Key_State[i1]= 0;
433+
break;
434+
}
435+
switch (i2) {
436+
case RETROK_LALT:
437+
case RETROK_LCTRL:
438+
case RETROK_LSHIFT:
439+
case RETROK_SPACE:
440+
case RETROK_TAB:
441+
case RETROK_BACKSPACE:
442+
case RETROK_PAGEUP:
443+
case RETROK_PAGEDOWN:
444+
case RETROK_RSHIFT:
445+
case RETROK_RCTRL:
446+
case RETROK_RETURN:
447+
case RETROK_ESCAPE:
448+
Key_State[i2]= 0;
449+
break;
450+
}
451+
}
452+
}
453+
else
454+
{
455+
#endif
406456
for(i=0;i<320;i++)
407457
Key_State[i]=input_state_cb(0, RETRO_DEVICE_KEYBOARD, 0,i) ? 0x80: 0;
408458
}

0 commit comments

Comments
 (0)