From 995b71a51d3cfa37ebf5dd40d83bd6c0aed019d4 Mon Sep 17 00:00:00 2001 From: Maurus Cuelenaere Date: Sun, 1 Jun 2008 13:37:33 +0000 Subject: Some more touchscreen gui list improvements. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17672 a1c6a512-1295-4272-9138-f99709370657 --- apps/gui/bitmap/list.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'apps/gui/bitmap/list.c') diff --git a/apps/gui/bitmap/list.c b/apps/gui/bitmap/list.c index fa41daeb01..f1dbf188ab 100644 --- a/apps/gui/bitmap/list.c +++ b/apps/gui/bitmap/list.c @@ -311,12 +311,13 @@ unsigned gui_synclist_do_touchpad(struct gui_synclist * gui_list, struct viewpor if (nb_lines < gui_list->nb_items) { height = nb_lines * font_get(parent->font)->height; - size = height*nb_lines / gui_list->nb_items; + size = height / gui_list->nb_items; new_selection = ((y-list_text[SCREEN_MAIN].y)*(gui_list->nb_items-nb_lines))/(height-size); - nb_lines /= 2; - if (new_selection - gui_list->start_item[SCREEN_MAIN] > nb_lines) - new_selection = gui_list->start_item[SCREEN_MAIN]+nb_lines; + if (new_selection - gui_list->start_item[SCREEN_MAIN] > (nb_lines/2)) + new_selection = gui_list->start_item[SCREEN_MAIN]+(nb_lines/2); + else if (new_selection > gui_list->nb_items-nb_lines) + new_selection = gui_list->nb_items-nb_lines; gui_synclist_select_item(gui_list, new_selection); gui_list->start_item[SCREEN_MAIN] = new_selection; @@ -337,7 +338,10 @@ unsigned gui_synclist_do_touchpad(struct gui_synclist * gui_list, struct viewpor for(i=0; inb_items; i++) { if(actual_y > line_height*i && actual_y < line_height*(i+1)) + { line = i; + break; + } } if(line == -1) return ACTION_NONE; -- cgit v1.2.3