X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fevents.c;h=e197be5cef3039e9111ea89e021a4cfd09dfad6e;hb=6c674ccdd458314ced75459649c6acf1489b6056;hp=c743a8b09e5a17b3c7b5e5f36ba04cc695b7cf8e;hpb=d7196292a6cc00acc4292f4920cd63fc16ef3068;p=rocksndiamonds.git diff --git a/src/events.c b/src/events.c index c743a8b0..e197be5c 100644 --- a/src/events.c +++ b/src/events.c @@ -867,21 +867,16 @@ void HandleTextEvent(TextEvent *event) GetKeyModState()); #endif -#if defined(PLATFORM_ANDROID) - if (game_status == GAME_MODE_PSEUDO_TYPENAME) - { - HandleTypeName(0, key); - +#if !defined(HAS_SCREEN_KEYBOARD) + // non-mobile devices: only handle key input with modifier keys pressed here + // (every other key input is handled directly as physical key input event) + if (!checkTextInputKeyModState()) return; - } #endif - // only handle key input with text modifier keys pressed - if (checkTextInputKeyModState()) - { - HandleKey(key, KEY_PRESSED); - HandleKey(key, KEY_RELEASED); - } + // process text input as "classic" (with uppercase etc.) key input event + HandleKey(key, KEY_PRESSED); + HandleKey(key, KEY_RELEASED); } void HandlePauseResumeEvent(PauseResumeEvent *event) @@ -1209,14 +1204,12 @@ void HandleKeysDebug(Key key) if (game_status == GAME_MODE_PLAYING || !setup.debug.frame_delay_game_only) { - boolean mod_key_pressed = ((GetKeyModState() & KMOD_Control) || - (GetKeyModState() & KMOD_Alt) || - (GetKeyModState() & KMOD_Meta)); + boolean mod_key_pressed = (GetKeyModState() != KMOD_None); for (i = 0; i < NUM_DEBUG_FRAME_DELAY_KEYS; i++) { if (key == setup.debug.frame_delay_key[i] && - (mod_key_pressed || !setup.debug.frame_delay_use_mod_key)) + (mod_key_pressed == setup.debug.frame_delay_use_mod_key)) { GameFrameDelay = (GameFrameDelay != setup.debug.frame_delay[i] ? setup.debug.frame_delay[i] : GAME_FRAME_DELAY); @@ -1455,21 +1448,20 @@ void HandleKey(Key key, int key_status) return; } - if ((key == KSYM_minus || - key == KSYM_plus || - key == KSYM_equal || // ("Shift-=" is "+" on US keyboards) - key == KSYM_0) && - ((GetKeyModState() & KMOD_Control) || - (GetKeyModState() & KMOD_Alt) || - (GetKeyModState() & KMOD_Meta)) && + if ((key == KSYM_0 || key == KSYM_KP_0 || + key == KSYM_minus || key == KSYM_KP_Subtract || + key == KSYM_plus || key == KSYM_KP_Add || + key == KSYM_equal) && // ("Shift-=" is "+" on US keyboards) + (GetKeyModState() & (KMOD_Control | KMOD_Meta)) && video.window_scaling_available && !video.fullscreen_enabled) { - if (key == KSYM_0) + if (key == KSYM_0 || key == KSYM_KP_0) setup.window_scaling_percent = STD_WINDOW_SCALING_PERCENT; + else if (key == KSYM_minus || key == KSYM_KP_Subtract) + setup.window_scaling_percent -= STEP_WINDOW_SCALING_PERCENT; else - setup.window_scaling_percent += - (key == KSYM_minus ? -1 : +1) * STEP_WINDOW_SCALING_PERCENT; + setup.window_scaling_percent += STEP_WINDOW_SCALING_PERCENT; if (setup.window_scaling_percent < MIN_WINDOW_SCALING_PERCENT) setup.window_scaling_percent = MIN_WINDOW_SCALING_PERCENT;