From 15775c8badac65ad9d7477a1706c019703c15b47 Mon Sep 17 00:00:00 2001 From: Thomas Martitz Date: Wed, 18 Jul 2012 10:25:32 +0200 Subject: fix erroneous button read in yesno screen and missed buttons in action.c. If two yesno screens directly follow each other the button release of the first one was incorrectly accepted in the second one. The fix exposed another problem in action.c if action_wait_for_release() is called when no button is actually pressed. The next press was silently eaten. Change-Id: Iaa5f246f7ea1fd775606620a989cdaec74a9305e --- apps/action.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'apps/action.c') diff --git a/apps/action.c b/apps/action.c index 5ebcbf7..3c130e3 100644 --- a/apps/action.c +++ b/apps/action.c @@ -232,7 +232,13 @@ 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; -- cgit v1.1