local_player->mouse_action.ly = ly;
local_player->mouse_action.button = button;
- if (tape.recording && tape.pausing && (tape.event_mask & GAME_EVENTS_MOUSE))
+ if (tape.recording && tape.pausing && tape.use_mouse_actions)
{
// un-pause a paused game only if mouse button was newly pressed down
if (new_button)
{
if (strEqual(setup.touch.control_type, TOUCH_CONTROL_FOLLOW_FINGER))
HandleButtonOrFinger_FollowFinger(mx, my, button);
- else if ((game.event_mask & GAME_EVENTS_MOUSE) && valid_mouse_event)
+ else if (game.use_mouse_actions && valid_mouse_event)
SetPlayerMouseAction(mx, my, button);
}
}
-static boolean checkTextInputKeyModState(void)
+static boolean checkTextInputKey(Key key)
{
// when playing, only handle raw key events and ignore text input
if (game_status == GAME_MODE_PLAYING)
return FALSE;
- return ((GetKeyModState() & KMOD_TextInput) != KMOD_None);
+ // else handle all printable keys as text input
+ return KSYM_PRINTABLE(key);
}
void HandleTextEvent(TextEvent *event)
GetKeyModState());
#endif
-#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
-
- // process text input as "classic" (with uppercase etc.) key input event
- HandleKey(key, KEY_PRESSED);
- HandleKey(key, KEY_RELEASED);
+ if (checkTextInputKey(key))
+ {
+ // process printable keys (with uppercase etc.) in text input mode
+ HandleKey(key, KEY_PRESSED);
+ HandleKey(key, KEY_RELEASED);
+ }
}
void HandlePauseResumeEvent(PauseResumeEvent *event)
HandleKeyModState(keymod, key_status);
- // only handle raw key input without text modifier keys pressed
- if (!checkTextInputKeyModState())
+ // process all keys if not in text input mode or if non-printable keys
+ if (!checkTextInputKey(key))
HandleKey(key, key_status);
}
if (stored_player[pnr].snap_action)
stored_player[pnr].action |= JOY_BUTTON_SNAP;
- if (tape.recording && tape.pausing && (tape.event_mask & GAME_EVENTS_KEYS))
+ if (tape.recording && tape.pausing && tape.use_key_actions)
{
if (tape.single_step)
{
return;
}
- if (tape.recording && tape.pausing && (tape.event_mask & GAME_EVENTS_KEYS))
+ if (tape.recording && tape.pausing && tape.use_key_actions)
{
if (tape.single_step)
{