summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/action.c6
-rw-r--r--apps/gui/yesno.c7
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