]> git.lizzy.rs Git - nothing.git/commitdiff
(#604) if level has enabled text input mode ignore special keys
authorrexim <reximkut@gmail.com>
Sun, 15 Sep 2019 18:01:13 +0000 (01:01 +0700)
committerrexim <reximkut@gmail.com>
Sun, 15 Sep 2019 18:03:31 +0000 (01:03 +0700)
src/game.c

index 13f0fb9875a92f03a104031f38e96835ccd11599..c991757b852a82c0c249b4c1b189b2f88d8feed8 100644 (file)
@@ -278,30 +278,31 @@ static int game_event_running(Game *game, const SDL_Event *event)
     trace_assert(game);
     trace_assert(event);
 
-    switch (event->type) {
-    case SDL_KEYDOWN: {
-        switch (event->key.keysym.sym) {
-        case SDLK_r: {
-            game->level = RESET_LT(
-                game->lt,
-                game->level,
-                create_level_from_level_editor(
-                    game->level_editor,
-                    game->broadcast));
-            if (game->level == NULL) {
-                game_switch_state(game, GAME_STATE_QUIT);
-                return -1;
-            }
+    if (!SDL_IsTextInputActive()) {
+        switch (event->type) {
+        case SDL_KEYDOWN: {
+            switch (event->key.keysym.sym) {
+            case SDLK_r: {
+                game->level = RESET_LT(
+                    game->lt,
+                    game->level,
+                    create_level_from_level_editor(
+                        game->level_editor,
+                        game->broadcast));
+                if (game->level == NULL) {
+                    game_switch_state(game, GAME_STATE_QUIT);
+                    return -1;
+                }
 
-            camera_disable_debug_mode(&game->camera);
-        } break;
+                camera_disable_debug_mode(&game->camera);
+            } break;
 
-        case SDLK_TAB: {
-            game_switch_state(game, GAME_STATE_LEVEL_EDITOR);
+            case SDLK_TAB: {
+                game_switch_state(game, GAME_STATE_LEVEL_EDITOR);
+            } break;
+            }
         } break;
         }
-    } break;
-
     }
 
     return level_event(game->level, event, &game->camera, game->sound_samples);