ref: 779a2157c0e5afe358b03c8236e88a661b35bca0
parent: 3a4db2509420fa89c2ee940cc0998d0d614d63a5
author: Simon Howard <[email protected]>
date: Thu Jun 11 15:41:20 EDT 2009
Grab the input in setup when reading a new key binding, so that Windows CE buttons are read properly. Map buttons to PC function keys. Subversion-branch: /trunk/chocolate-doom Subversion-revision: 1594
--- a/setup/txt_keyinput.c
+++ b/setup/txt_keyinput.c
@@ -57,6 +57,11 @@
}
}
+static void ReleaseGrab(TXT_UNCAST_ARG(window), TXT_UNCAST_ARG(unused))
+{
+ SDL_WM_GrabInput(SDL_GRAB_OFF);
+}
+
static void OpenPromptWindow(txt_key_input_t *key_input)
{
txt_window_t *window;
@@ -78,6 +83,13 @@
// Disable key mappings while we prompt for the key press
TXT_EnableKeyMapping(0);
+
+ // Grab input while reading the key. On Windows Mobile
+ // handheld devices, the hardware keypresses are only
+ // detected when input is grabbed.
+
+ SDL_WM_GrabInput(SDL_GRAB_ON);
+ TXT_SignalConnect(window, "closed", ReleaseGrab, NULL);
}
static void TXT_KeyInputSizeCalc(TXT_UNCAST_ARG(key_input))
--- a/src/i_video.c
+++ b/src/i_video.c
@@ -362,6 +362,15 @@
case SDLK_PAGEUP: return KEY_PGUP;
case SDLK_PAGEDOWN: return KEY_PGDN;
+#ifdef SDL_HAVE_APP_KEYS
+ case SDLK_APP1: return KEY_F1;
+ case SDLK_APP2: return KEY_F2;
+ case SDLK_APP3: return KEY_F3;
+ case SDLK_APP4: return KEY_F4;
+ case SDLK_APP5: return KEY_F5;
+ case SDLK_APP6: return KEY_F6;
+#endif
+
default:
return tolower(sym->sym);
}
--- a/textscreen/txt_sdl.c
+++ b/textscreen/txt_sdl.c
@@ -368,6 +368,15 @@
case SDLK_PAGEUP: return KEY_PGUP;
case SDLK_PAGEDOWN: return KEY_PGDN;
+#ifdef SDL_HAVE_APP_KEYS
+ case SDLK_APP1: return KEY_F1;
+ case SDLK_APP2: return KEY_F2;
+ case SDLK_APP3: return KEY_F3;
+ case SDLK_APP4: return KEY_F4;
+ case SDLK_APP5: return KEY_F5;
+ case SDLK_APP6: return KEY_F6;
+#endif
+
default: break;
}
@@ -508,6 +517,7 @@
case KEYP_MINUS: return "PAD-";
case KEYP_DIVIDE: return "PAD/";
*/
+
default: return NULL;
}
}