mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r11061) -Fix [FS#1086]: [win32] some keys were handled twice
This commit is contained in:
parent
82f6a90a56
commit
1713d89374
59
src/gfx.h
59
src/gfx.h
|
@ -36,24 +36,6 @@ enum WindowKeyCodes {
|
||||||
WKC_RETURN = 13,
|
WKC_RETURN = 13,
|
||||||
WKC_TAB = 14,
|
WKC_TAB = 14,
|
||||||
|
|
||||||
/* Numerical keyboard */
|
|
||||||
WKC_NUM_0 = 16,
|
|
||||||
WKC_NUM_1 = 17,
|
|
||||||
WKC_NUM_2 = 18,
|
|
||||||
WKC_NUM_3 = 19,
|
|
||||||
WKC_NUM_4 = 20,
|
|
||||||
WKC_NUM_5 = 21,
|
|
||||||
WKC_NUM_6 = 22,
|
|
||||||
WKC_NUM_7 = 23,
|
|
||||||
WKC_NUM_8 = 24,
|
|
||||||
WKC_NUM_9 = 25,
|
|
||||||
WKC_NUM_DIV = 26,
|
|
||||||
WKC_NUM_MUL = 27,
|
|
||||||
WKC_NUM_MINUS = 28,
|
|
||||||
WKC_NUM_PLUS = 29,
|
|
||||||
WKC_NUM_ENTER = 30,
|
|
||||||
WKC_NUM_DECIMAL = 31,
|
|
||||||
|
|
||||||
/* Space */
|
/* Space */
|
||||||
WKC_SPACE = 32,
|
WKC_SPACE = 32,
|
||||||
|
|
||||||
|
@ -81,20 +63,35 @@ enum WindowKeyCodes {
|
||||||
* A-Z are mapped to 65-90
|
* A-Z are mapped to 65-90
|
||||||
* a-z are mapped to 97-122 */
|
* a-z are mapped to 97-122 */
|
||||||
|
|
||||||
/* Other keys, corresponding to their ascii values */
|
/* Numerical keyboard */
|
||||||
WKC_SLASH = 47, ///< / Forward slash
|
WKC_NUM_0 = 128,
|
||||||
WKC_SEMICOLON = 59, ///< ; Semicolon
|
WKC_NUM_1 = 129,
|
||||||
WKC_EQUALS = 61, ///< = Equals
|
WKC_NUM_2 = 130,
|
||||||
WKC_L_BRACKET = 91, ///< [ Left square bracket
|
WKC_NUM_3 = 131,
|
||||||
WKC_BACKSLASH = 92, ///< \ Backslash
|
WKC_NUM_4 = 132,
|
||||||
WKC_R_BRACKET = 93, ///< ] Right square bracket
|
WKC_NUM_5 = 133,
|
||||||
|
WKC_NUM_6 = 134,
|
||||||
|
WKC_NUM_7 = 135,
|
||||||
|
WKC_NUM_8 = 136,
|
||||||
|
WKC_NUM_9 = 137,
|
||||||
|
WKC_NUM_DIV = 138,
|
||||||
|
WKC_NUM_MUL = 139,
|
||||||
|
WKC_NUM_MINUS = 140,
|
||||||
|
WKC_NUM_PLUS = 141,
|
||||||
|
WKC_NUM_ENTER = 142,
|
||||||
|
WKC_NUM_DECIMAL = 143,
|
||||||
|
|
||||||
/* Other keys of which their ascii value is already taken
|
/* Other keys */
|
||||||
* - use unused ascii value not present on keyboard directly */
|
WKC_SLASH = 144, ///< / Forward slash
|
||||||
WKC_SINGLEQUOTE = 58, ///< ' Single quote
|
WKC_SEMICOLON = 145, ///< ; Semicolon
|
||||||
WKC_COMMA = 60, ///< , Comma
|
WKC_EQUALS = 146, ///< = Equals
|
||||||
WKC_PERIOD = 62, ///< . Period
|
WKC_L_BRACKET = 147, ///< [ Left square bracket
|
||||||
WKC_MINUS = 95, ///< - Minus
|
WKC_BACKSLASH = 148, ///< \ Backslash
|
||||||
|
WKC_R_BRACKET = 149, ///< ] Right square bracket
|
||||||
|
WKC_SINGLEQUOTE = 150, ///< ' Single quote
|
||||||
|
WKC_COMMA = 151, ///< , Comma
|
||||||
|
WKC_PERIOD = 152, ///< . Period
|
||||||
|
WKC_MINUS = 153, ///< - Minus
|
||||||
};
|
};
|
||||||
|
|
||||||
enum GameModes {
|
enum GameModes {
|
||||||
|
|
|
@ -494,6 +494,9 @@ static LRESULT CALLBACK WndProcGdi(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lP
|
||||||
* WM_KEYDOWN only handles CTRL+ commands and special keys like VK_LEFT, etc. */
|
* WM_KEYDOWN only handles CTRL+ commands and special keys like VK_LEFT, etc. */
|
||||||
if (keycode == 0 || (keycode > WKC_PAUSE && GB(keycode, 13, 4) == 0)) return 0;
|
if (keycode == 0 || (keycode > WKC_PAUSE && GB(keycode, 13, 4) == 0)) return 0;
|
||||||
|
|
||||||
|
/* Keys handled in WM_CHAR */
|
||||||
|
if ((uint)(GB(keycode, 0, 12) - WKC_NUM_DIV) <= WKC_MINUS - WKC_NUM_DIV) return 0;
|
||||||
|
|
||||||
HandleKeypress(0 | (keycode << 16));
|
HandleKeypress(0 | (keycode << 16));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue