gl: clear w, h on reinit
[libpicofe.git] / input.c
diff --git a/input.c b/input.c
index aa1f155..4f91a55 100644 (file)
--- a/input.c
+++ b/input.c
@@ -44,7 +44,6 @@ static int in_probe_dev_id;
 static int menu_key_state = 0;
 static int menu_last_used_dev = 0;
 static int menu_key_prev = 0;
-static int menu_key_mask = 0;
 static int menu_key_repeat = 0;
 
 #define DRV(id) in_drivers[id]
@@ -446,9 +445,7 @@ int in_menu_wait_any(char *charcode, int timeout_ms)
 
        ret = menu_key_state;
        if (ret == 0)
-               menu_key_mask = menu_key_prev = 0;
-       else if (ret != menu_key_prev)
-               menu_key_mask = menu_key_prev;
+               menu_key_prev = 0;
 
        return ret;
 }
@@ -462,6 +459,9 @@ int in_menu_wait(int interesting, char *charcode, int autorep_delay_ms)
                wait = autorep_delay_ms;
 
        /* wait until either key repeat or a new key has been pressed */
+#ifdef SDL_REDRAW_EVT
+       interesting |= PBTN_RDRAW;
+#endif
        do {
                ret = in_menu_wait_any(charcode, wait);
                if (ret == 0 || ret != menu_key_prev)
@@ -469,9 +469,6 @@ int in_menu_wait(int interesting, char *charcode, int autorep_delay_ms)
                else
                        menu_key_repeat++;
                wait = -1;
-               /* mask away all old keys if an additional new key is pressed */
-               /* XXX what if old and new keys share bits (PBTN_CHAR)? */
-               ret &= ~menu_key_mask;
        } while (!(ret & interesting));
 
        /* we don't need diagonals in menus */