From 349bed669c92080bdda265d37f7bda6197c43ef9 Mon Sep 17 00:00:00 2001 From: Daniel Dressler Date: Thu, 4 Jul 2013 12:18:05 -0700 Subject: [PATCH] Fix windows dropping special keys --- Windows/KeyboardDevice.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/Windows/KeyboardDevice.cpp b/Windows/KeyboardDevice.cpp index 2edfe4a29b..a698024f8b 100644 --- a/Windows/KeyboardDevice.cpp +++ b/Windows/KeyboardDevice.cpp @@ -136,11 +136,17 @@ int KeyboardDevice::UpdateState(InputState &input_state) { if (!GetAsyncKeyState(key_pad_map[i])) { continue; } - // TODO: Escape should eventually work with KeyQueueAttemptTranslatedAdd, but it doesn't - // right now. + if (!doAlternate || key_pad_map[i + 1] > PAD_BUTTON_SELECT) { - if(key_pad_map[i] == VK_ESCAPE) - input_state.pad_buttons |= key_pad_map[i + 1]; + // TODO: remove once EmuScreen supports virtual keys + switch (key_pad_map[i]) { + case VK_ESCAPE: + case VK_F3: + case VK_PAUSE: + case VK_BACK: + input_state.pad_buttons |= key_pad_map[i + 1]; + break; + } KeyQueueAttemptTranslatedAdd(input_state.key_queue, windowsTransTable, key_pad_map[i]); }