summaryrefslogtreecommitdiff
path: root/apps/gui/bitmap/list.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/gui/bitmap/list.c')
-rw-r--r--apps/gui/bitmap/list.c12
1 files changed, 8 insertions, 4 deletions
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
311 if (nb_lines < gui_list->nb_items) 311 if (nb_lines < gui_list->nb_items)
312 { 312 {
313 height = nb_lines * font_get(parent->font)->height; 313 height = nb_lines * font_get(parent->font)->height;
314 size = height*nb_lines / gui_list->nb_items; 314 size = height / gui_list->nb_items;
315 new_selection = ((y-list_text[SCREEN_MAIN].y)*(gui_list->nb_items-nb_lines))/(height-size); 315 new_selection = ((y-list_text[SCREEN_MAIN].y)*(gui_list->nb_items-nb_lines))/(height-size);
316 nb_lines /= 2;
317 316
318 if (new_selection - gui_list->start_item[SCREEN_MAIN] > nb_lines) 317 if (new_selection - gui_list->start_item[SCREEN_MAIN] > (nb_lines/2))
319 new_selection = gui_list->start_item[SCREEN_MAIN]+nb_lines; 318 new_selection = gui_list->start_item[SCREEN_MAIN]+(nb_lines/2);
319 else if (new_selection > gui_list->nb_items-nb_lines)
320 new_selection = gui_list->nb_items-nb_lines;
320 321
321 gui_synclist_select_item(gui_list, new_selection); 322 gui_synclist_select_item(gui_list, new_selection);
322 gui_list->start_item[SCREEN_MAIN] = new_selection; 323 gui_list->start_item[SCREEN_MAIN] = new_selection;
@@ -337,7 +338,10 @@ unsigned gui_synclist_do_touchpad(struct gui_synclist * gui_list, struct viewpor
337 for(i=0; i<gui_list->nb_items; i++) 338 for(i=0; i<gui_list->nb_items; i++)
338 { 339 {
339 if(actual_y > line_height*i && actual_y < line_height*(i+1)) 340 if(actual_y > line_height*i && actual_y < line_height*(i+1))
341 {
340 line = i; 342 line = i;
343 break;
344 }
341 } 345 }
342 if(line == -1) 346 if(line == -1)
343 return ACTION_NONE; 347 return ACTION_NONE;