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