| 897 | } |
| 898 | |
| 899 | void InputManager::backend_key_down_update(const SDL_KeyboardEvent& e) { |
| 900 | auto kPress = e.key; |
| 901 | auto kMod = e.mod; |
| 902 | |
| 903 | #ifdef __ANDROID__ |
| 904 | if(kPress == SDLK_AC_BACK) { |
| 905 | main.input_global_back_button_callback(); |
| 906 | return; |
| 907 | } |
| 908 | #endif |
| 909 | |
| 910 | if(kPress != SDLK_LSHIFT && kPress != SDLK_RSHIFT && kPress != SDLK_LCTRL && kPress != SDLK_RCTRL && |
| 911 | kPress != SDLK_LGUI && kPress != SDLK_RGUI && |
| 912 | kPress != SDLK_LALT && kPress != SDLK_RALT) { |
| 913 | if(main.input_keybind_callback({make_generic_key_mod(kMod), kPress})) |
| 914 | return; |
| 915 | } |
| 916 | |
| 917 | bool acceptingTextInput = text_is_accepting_input(); |
| 918 | |
| 919 | switch(kPress) { |
| 920 | case SDLK_UP: |
| 921 | set_key_down(e, KEY_GENERIC_UP, acceptingTextInput); |
| 922 | break; |
| 923 | case SDLK_DOWN: |
| 924 | set_key_down(e, KEY_GENERIC_DOWN, acceptingTextInput); |
| 925 | break; |
| 926 | case SDLK_LEFT: |
| 927 | set_key_down(e, KEY_GENERIC_LEFT, acceptingTextInput); |
| 928 | break; |
| 929 | case SDLK_RIGHT: |
| 930 | set_key_down(e, KEY_GENERIC_RIGHT, acceptingTextInput); |
| 931 | break; |
| 932 | case SDLK_BACKSPACE: |
| 933 | set_key_down(e, KEY_TEXT_BACKSPACE, acceptingTextInput); |
| 934 | break; |
| 935 | case SDLK_DELETE: |
| 936 | set_key_down(e, KEY_TEXT_DELETE, acceptingTextInput); |
| 937 | break; |
| 938 | case SDLK_HOME: |
| 939 | set_key_down(e, KEY_TEXT_HOME, acceptingTextInput); |
| 940 | break; |
| 941 | case SDLK_END: |
| 942 | set_key_down(e, KEY_TEXT_END, acceptingTextInput); |
| 943 | break; |
| 944 | case SDLK_LSHIFT: |
| 945 | set_key_down(e, KEY_GENERIC_LSHIFT, acceptingTextInput); |
| 946 | break; |
| 947 | case SDLK_LALT: |
| 948 | set_key_down(e, KEY_GENERIC_LALT, acceptingTextInput); |
| 949 | break; |
| 950 | case SDLK_LCTRL: |
| 951 | set_key_down(e, KEY_GENERIC_LCTRL, acceptingTextInput); |
| 952 | break; |
| 953 | case SDLK_LMETA: |
| 954 | set_key_down(e, KEY_GENERIC_LMETA, acceptingTextInput); |
| 955 | break; |
| 956 | case SDLK_C: |
no test coverage detected