diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/gui/bitmap/list.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/apps/gui/bitmap/list.c b/apps/gui/bitmap/list.c index a82595fb37..2b5a99fb9f 100644 --- a/apps/gui/bitmap/list.c +++ b/apps/gui/bitmap/list.c | |||
@@ -547,6 +547,8 @@ static bool swipe_scroll(struct gui_synclist * gui_list, int difference) | |||
547 | gui_list->start_item[screen] = new_start_item; | 547 | gui_list->start_item[screen] = new_start_item; |
548 | /* keep selected item in sync */ | 548 | /* keep selected item in sync */ |
549 | gui_list->selected_item = new_start_item + selection_offset; | 549 | gui_list->selected_item = new_start_item + selection_offset; |
550 | if(gui_list->selected_size > 1) | ||
551 | gui_list->selected_item -= (gui_list->selected_item % gui_list->selected_size); | ||
550 | } | 552 | } |
551 | 553 | ||
552 | return true; | 554 | return true; |
@@ -737,6 +739,8 @@ unsigned gui_synclist_do_touchscreen(struct gui_synclist * list) | |||
737 | if (list_start_item+line >= list->nb_items) | 739 | if (list_start_item+line >= list->nb_items) |
738 | return ACTION_NONE; | 740 | return ACTION_NONE; |
739 | list->selected_item = list_start_item+line; | 741 | list->selected_item = list_start_item+line; |
742 | if(list->selected_size > 1) | ||
743 | list->selected_item -= (list->selected_item % list->selected_size); | ||
740 | 744 | ||
741 | gui_synclist_speak_item(list); | 745 | gui_synclist_speak_item(list); |
742 | } | 746 | } |
@@ -754,7 +758,7 @@ unsigned gui_synclist_do_touchscreen(struct gui_synclist * list) | |||
754 | if (click_loc & LIST) | 758 | if (click_loc & LIST) |
755 | { | 759 | { |
756 | /* held a single line for a while, bring up the context menu */ | 760 | /* held a single line for a while, bring up the context menu */ |
757 | gui_synclist_select_item(list, list_start_item + line); | 761 | gui_synclist_select_item(list, list->selected_item); |
758 | /* don't sent context repeatedly */ | 762 | /* don't sent context repeatedly */ |
759 | action_wait_for_release(); | 763 | action_wait_for_release(); |
760 | initial_touch = true; | 764 | initial_touch = true; |
@@ -766,7 +770,7 @@ unsigned gui_synclist_do_touchscreen(struct gui_synclist * list) | |||
766 | initial_touch = true; | 770 | initial_touch = true; |
767 | if (click_loc & LIST) | 771 | if (click_loc & LIST) |
768 | { /* release on list item enters it */ | 772 | { /* release on list item enters it */ |
769 | gui_synclist_select_item(list, list_start_item + line); | 773 | gui_synclist_select_item(list, list->selected_item); |
770 | return ACTION_STD_OK; | 774 | return ACTION_STD_OK; |
771 | } | 775 | } |
772 | else if (click_loc & TITLE_TEXT) | 776 | else if (click_loc & TITLE_TEXT) |