From abaca14e7b9d2aafc821b7419e910b3357a9924b Mon Sep 17 00:00:00 2001 From: mcuelenaere Date: Thu, 24 Jun 2010 14:22:36 +0000 Subject: [PATCH] Fix touchscreen scrollbar behaviour when it's on the right. This was broken since r26922. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27107 a1c6a512-1295-4272-9138-f99709370657 --- apps/gui/bitmap/list.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/apps/gui/bitmap/list.c b/apps/gui/bitmap/list.c index b5e253d48..09c89618f 100644 --- a/apps/gui/bitmap/list.c +++ b/apps/gui/bitmap/list.c @@ -347,24 +347,16 @@ unsigned gui_synclist_do_touchscreen(struct gui_synclist * gui_list) short x, y; const int button = action_get_touchscreen_press(&x, &y); int line; - const int screen = SCREEN_MAIN; + const struct screen *display = &screens[SCREEN_MAIN]; + const int screen = display->screen_type; const int list_start_item = gui_list->start_item[screen]; const struct viewport *list_text_vp = &list_text[screen]; - int list_width = list_text_vp->width; - - if (global_settings.scrollbar == SCROLLBAR_RIGHT) - list_width += SCROLLBAR_WIDTH; if (button == BUTTON_NONE) return ACTION_NONE; - /* make sure it is inside the UI viewport */ - if (list_display_title(gui_list, screen) && - viewport_point_within_vp(&title_text[screen], x, y) && - button == BUTTON_REL) - return ACTION_STD_CANCEL; - - if (!viewport_point_within_vp(list_text_vp, x, y)) + if (global_settings.scrollbar == SCROLLBAR_RIGHT && + x > list_text_vp->x + list_text_vp->width + SCROLLBAR_WIDTH) /* wider than the list's viewport, ignore it */ return ACTION_NONE; @@ -471,6 +463,9 @@ unsigned gui_synclist_do_touchscreen(struct gui_synclist * gui_list) else return ACTION_NONE; } + /* Everything above the items is cancel */ + else if (y < list_text_vp->y && button == BUTTON_REL) + return ACTION_STD_CANCEL; } return ACTION_NONE; } -- 2.11.4.GIT