diff --git a/apps/action.c b/apps/action.c index ee6cbaa4cf..5ebcbf771b 100644 --- a/apps/action.c +++ b/apps/action.c @@ -233,6 +233,10 @@ static int get_action_worker(int context, int timeout, * multimedia button presses don't go through the action system */ if (button == BUTTON_NONE || button & (SYS_EVENT|BUTTON_MULTIMEDIA)) return button; + /* the special redraw button should result in a screen refresh */ + if (button == BUTTON_REDRAW) + return ACTION_REDRAW; + /* Don't send any buttons through untill we see the release event */ if (wait_for_release) { diff --git a/apps/gui/bitmap/list.c b/apps/gui/bitmap/list.c index 09a66f3386..2f13d8ba53 100644 --- a/apps/gui/bitmap/list.c +++ b/apps/gui/bitmap/list.c @@ -587,7 +587,7 @@ static int kinetic_callback(struct timeout *tmo) data->velocity = 0; } - queue_post(&button_queue, BUTTON_TOUCHSCREEN, 0); + queue_post(&button_queue, BUTTON_REDRAW, 0); /* stop if the velocity hit or crossed zero */ if (!data->velocity) { diff --git a/apps/keymaps/keymap-android.c b/apps/keymaps/keymap-android.c index b7b93ac1f0..ea1abbc83a 100644 --- a/apps/keymaps/keymap-android.c +++ b/apps/keymaps/keymap-android.c @@ -50,9 +50,6 @@ static const struct button_mapping button_context_standard[] = { { ACTION_STD_MENU, BUTTON_MENU|BUTTON_REL, BUTTON_MENU }, { ACTION_STD_CONTEXT, BUTTON_MENU|BUTTON_REPEAT, BUTTON_MENU }, - /* special hack to get a redraw on activity resume, see lcd-android.c */ - { ACTION_REDRAW, BUTTON_FORCE_REDRAW, BUTTON_NONE }, - LAST_ITEM_IN_LIST }; /* button_context_standard */ diff --git a/firmware/export/button.h b/firmware/export/button.h index 3f6052a309..6276a033cc 100644 --- a/firmware/export/button.h +++ b/firmware/export/button.h @@ -81,13 +81,15 @@ void wheel_send_events(bool send); int button_apply_acceleration(const unsigned int data); #endif -#define BUTTON_NONE 0x00000000 +#define BUTTON_NONE 0x00000000 /* Button modifiers */ -#define BUTTON_REL 0x02000000 -#define BUTTON_REPEAT 0x04000000 -#define BUTTON_TOUCHSCREEN 0x08000000 -#define BUTTON_MULTIMEDIA 0x10000000 +#define BUTTON_REL 0x02000000 +#define BUTTON_REPEAT 0x04000000 +/* Special buttons */ +#define BUTTON_TOUCHSCREEN 0x08000000 +#define BUTTON_MULTIMEDIA 0x10000000 +#define BUTTON_REDRAW 0x20000000 #define BUTTON_MULTIMEDIA_PLAYPAUSE (BUTTON_MULTIMEDIA|0x01) #define BUTTON_MULTIMEDIA_STOP (BUTTON_MULTIMEDIA|0x02) diff --git a/firmware/target/hosted/android/app/button-target.h b/firmware/target/hosted/android/app/button-target.h index 326d65872d..5430d7f600 100644 --- a/firmware/target/hosted/android/app/button-target.h +++ b/firmware/target/hosted/android/app/button-target.h @@ -56,6 +56,4 @@ void android_ignore_back_button(bool yes); #define BUTTON_BOTTOMMIDDLE 0x00080000 #define BUTTON_BOTTOMRIGHT 0x00100000 -#define BUTTON_FORCE_REDRAW 0x00200000 - #endif /* _BUTTON_TARGET_H_ */ diff --git a/firmware/target/hosted/android/lcd-android.c b/firmware/target/hosted/android/lcd-android.c index bb0331db69..2b383741d1 100644 --- a/firmware/target/hosted/android/lcd-android.c +++ b/firmware/target/hosted/android/lcd-android.c @@ -146,7 +146,7 @@ Java_org_rockbox_RockboxFramebuffer_surfaceCreated(JNIEnv *env, jobject this, send_event(LCD_EVENT_ACTIVATION, NULL); /* Force an update, since the newly created surface is initially black * waiting for the next normal update results in a longish black screen */ - queue_post(&button_queue, BUTTON_FORCE_REDRAW, 0); + queue_post(&button_queue, BUTTON_REDRAW, 0); } /*