X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fevents.c;h=e197be5cef3039e9111ea89e021a4cfd09dfad6e;hb=6c674ccdd458314ced75459649c6acf1489b6056;hp=d749ad3dca9ccc27e5cdbef86d90e6640fd71ed9;hpb=8a383c7596b43a99276cbd82d0b21cbf12588a33;p=rocksndiamonds.git diff --git a/src/events.c b/src/events.c index d749ad3d..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) @@ -1453,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;