X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fevents.c;h=fe82932a746867dcfd26d64f01208ecf2e8e0a2f;hb=e4b2e4f943c20af98956d30fd3014888e9f75416;hp=1a6ac788b29aab28eca2f5918725cf3aeb09284d;hpb=4de6ecd779b3e482721e8d769cd4ca28f18ab66e;p=rocksndiamonds.git diff --git a/src/events.c b/src/events.c index 1a6ac788..fe82932a 100644 --- a/src/events.c +++ b/src/events.c @@ -214,6 +214,8 @@ static void HandleEvents(void) while (NextValidEvent(&event)) { + int game_status_last = game_status; + switch (event.type) { case EVENT_BUTTONPRESS: @@ -264,6 +266,10 @@ static void HandleEvents(void) break; } + // always handle events within delay period if game status has changed + if (game_status != game_status_last) + ResetDelayCounter(&event_frame_delay); + // do not handle events for longer than standard frame delay period if (DelayReached(&event_frame_delay, event_frame_delay_value)) break; @@ -1470,7 +1476,7 @@ void HandleKeyEvent(KeyEvent *event) if (key_status == KEY_PRESSED) SetOverlayEnabled(!GetOverlayEnabled()); } - else + else if (!textinput_status) { // for any other "real" key event, disable virtual buttons SetOverlayEnabled(FALSE); @@ -2405,7 +2411,7 @@ void HandleKey(Key key, int key_status) switch (key) { case KSYM_Escape: - RequestQuitGame(setup.ask_on_escape); + RequestQuitGame(TRUE); break; default: