diff --git a/apps/action.c b/apps/action.c index 3c130e3e29..5ebcbf771b 100644 --- a/apps/action.c +++ b/apps/action.c @@ -232,13 +232,7 @@ static int get_action_worker(int context, int timeout, /* Data from sys events can be pulled with button_get_data * multimedia button presses don't go through the action system */ if (button == BUTTON_NONE || button & (SYS_EVENT|BUTTON_MULTIMEDIA)) - { - /* no button pressed so no point in waiting for release */ - if (button == BUTTON_NONE) - wait_for_release = false; return button; - } - /* the special redraw button should result in a screen refresh */ if (button == BUTTON_REDRAW) return ACTION_REDRAW; diff --git a/apps/gui/yesno.c b/apps/gui/yesno.c index dc0465184d..a2abae33ae 100644 --- a/apps/gui/yesno.c +++ b/apps/gui/yesno.c @@ -169,10 +169,9 @@ enum yesno_res gui_syncyesno_run(const struct text_message * main_message, screens[i].stop_scroll(); gui_yesno_draw(&(yn[i])); } - /* make sure to eat any extranous keypresses */ - action_wait_for_release(); - + while (get_action(CONTEXT_STD+99, TIMEOUT_NOBLOCK)) + action_wait_for_release(); while (result==-1) { /* Repeat the question every 5secs (more or less) */ @@ -206,7 +205,6 @@ enum yesno_res gui_syncyesno_run(const struct text_message * main_message, result=YESNO_YES; break; case ACTION_NONE: - case ACTION_UNKNOWN: case SYS_CHARGER_DISCONNECTED: case SYS_BATTERY_UPDATE: /* ignore some SYS events that can happen */ @@ -235,7 +233,6 @@ enum yesno_res gui_syncyesno_run(const struct text_message * main_message, screens[i].scroll_stop(yn[i].vp); viewportmanager_theme_undo(i, true); } - return(result); }