diff options
-rw-r--r-- | apps/gui/bitmap/list.c | 12 |
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; |