diff --git a/input/drivers/android_input.c b/input/drivers/android_input.c index 2d85478238..1e475bd64c 100644 --- a/input/drivers/android_input.c +++ b/input/drivers/android_input.c @@ -915,7 +915,17 @@ static INLINE void android_input_poll_event_type_key( { uint8_t *buf = android_key_state[port]; int action = AKeyEvent_getAction(event); + int keysym = keycode; + /* Handle 'duplicate' inputs that correspond + * to the same RETROK_* key */ + switch (keycode) + { + case AKEYCODE_DPAD_CENTER: + keysym = AKEYCODE_ENTER; + default: + break; + } /* some controllers send both the up and down events at once * when the button is released for "special" buttons, like menu buttons * work around that by only using down events for meta keys (which get @@ -924,10 +934,10 @@ static INLINE void android_input_poll_event_type_key( switch (action) { case AKEY_EVENT_ACTION_UP: - BIT_CLEAR(buf, keycode); + BIT_CLEAR(buf, keysym); break; case AKEY_EVENT_ACTION_DOWN: - BIT_SET(buf, keycode); + BIT_SET(buf, keysym); break; } diff --git a/input/input_keymaps.c b/input/input_keymaps.c index dac84a5372..972acc2b04 100644 --- a/input/input_keymaps.c +++ b/input/input_keymaps.c @@ -1395,7 +1395,7 @@ const struct rarch_key_map rarch_key_map_android[] = { { AKEYCODE_TAB, RETROK_TAB }, { AKEYCODE_CLEAR, RETROK_CLEAR }, { AKEYCODE_ENTER, RETROK_RETURN }, - { AKEYCODE_DPAD_CENTER, RETROK_RETURN }, +/* { AKEYCODE_DPAD_CENTER, RETROK_RETURN }, */ /* Duplicate - skip */ { AKEYCODE_BREAK, RETROK_PAUSE }, { AKEYCODE_ESCAPE, RETROK_ESCAPE }, { AKEYCODE_SPACE, RETROK_SPACE },