From f5e4082ece8e5f13f3787195073460470fec38e7 Mon Sep 17 00:00:00 2001 From: adelikat Date: Mon, 23 Mar 2009 00:54:47 +0000 Subject: [PATCH] Win32 - prevent "hotkey" explosion by rshift on some laptop keyboards. --- changelog.txt | 1 + src/drivers/win/keyboard.cpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index f8a5e0e4..1f92010c 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,5 @@ ---version 2.0.4 yet to be released--- +23-mar-2009 - adelikat - Win32 - blocked "hotkey explosion" by rshift on some laptops 22-mar-2009 - shinydoofy - sdl - added hotkey I and --inputdisplay {0|1|2|4} for toggling input display. 22-mar-2009 - shinydoofy - sdl - added commandline options for sound channels' volumes 22-mar-2009 - shinydoofy - sdl - updated window title diff --git a/src/drivers/win/keyboard.cpp b/src/drivers/win/keyboard.cpp index 8265c0ec..1f984f70 100644 --- a/src/drivers/win/keyboard.cpp +++ b/src/drivers/win/keyboard.cpp @@ -45,7 +45,7 @@ void KeyboardUpdateState(void) unsigned char tk[256]; ddrval=IDirectInputDevice7_GetDeviceState(lpdid,256,tk); - + if (tk[0]) tk[0] = 0; //adelikat: HACK. If a keyboard key is recognized as this, the effect is that all non assigned hotkeys are run. This prevents the key from being used, but also prevent "hotkey explosion". Also, they essentially couldn't use it anyway since FCEUX doesn't know it is a shift key, and it can't be assigned in the hotkeys // HACK because DirectInput is totally wacky about recognizing the PAUSE/BREAK key if(GetAsyncKeyState(VK_PAUSE)) // normally this should have & 0x8000, but apparently this key is too special for that to work tk[0xC5] = 0x80;