diff options
| author | Thomas Martitz <kugel@rockbox.org> | 2012-04-05 13:00:05 +0200 |
|---|---|---|
| committer | Thomas Martitz <kugel@rockbox.org> | 2012-04-05 15:01:59 +0200 |
| commit | bb0e4cc543e4c7bed6dff3a41d092b6867632535 (patch) | |
| tree | a62dca3c50fa09cfe609df088e9eee9bf2ac2853 /apps | |
| parent | f458888a4c4fd8601ff4690388e2fc06fecb9fc2 (diff) | |
| download | rockbox-bb0e4cc543e4c7bed6dff3a41d092b6867632535.zip rockbox-bb0e4cc543e4c7bed6dff3a41d092b6867632535.tar.gz rockbox-bb0e4cc543e4c7bed6dff3a41d092b6867632535.tar.bz2 rockbox-bb0e4cc543e4c7bed6dff3a41d092b6867632535.tar.xz | |
touchscreen: Fix kinetic scrolling when the statusbar is off.
The scrolling code cannot differentiate between the BUTTON_TOUCHSCREEN post
from normal touches and the one posted in the timeout callback.
To fix introduce a global special button (BUTTON_REDRAW) that results
in the desired redraw. This existed already as a local kludge for android
and is now generalized.
Change-Id: I6bfa6c66431c48f5042fcd8fce2ea72cd3457f58
Diffstat (limited to 'apps')
| -rw-r--r-- | apps/action.c | 4 | ||||
| -rw-r--r-- | apps/gui/bitmap/list.c | 2 | ||||
| -rw-r--r-- | apps/keymaps/keymap-android.c | 3 |
3 files changed, 5 insertions, 4 deletions
diff --git a/apps/action.c b/apps/action.c index ee6cbaa..5ebcbf7 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 09a66f3..2f13d8b 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 b7b93ac..ea1abbc 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 */ |