summaryrefslogtreecommitdiff
path: root/apps/gui/bitmap
diff options
context:
space:
mode:
authorAidan MacDonald <amachronic@protonmail.com>2022-09-19 11:10:54 +0100
committerAidan MacDonald <amachronic@protonmail.com>2022-10-02 09:21:25 -0400
commit9ce5b2a2eda5c7101898476adaa3533e0ba5db82 (patch)
treefacbfe9721d907b1a92f2b113b262374c6e2917e /apps/gui/bitmap
parentc1d75a6bcb30260eba288f643261c4a57959f45f (diff)
downloadrockbox-9ce5b2a2eda5c7101898476adaa3533e0ba5db82.tar.gz
rockbox-9ce5b2a2eda5c7101898476adaa3533e0ba5db82.zip
gui: Remove show/hide selection option in lists
The implementation of the "show_selection_marker" option in lists isn't great. It's a cosmetic option used to hide the selection, but it causes the list to do funny things to the selected_item and doesn't play nice with voiced menus, since these rely on the selection to determine what item is spoken. There are only two user-facing lists that use the option, the "Rockbox Info" screen and a menu in the superdom plugin. The rest are debug screens, and cosmetics don't matter much there. Given how little used the option is, and its issues, removing it seems reasonable. Change-Id: I2c70b3e4c74ff3cc6dbac46366a371d271dd2d58
Diffstat (limited to 'apps/gui/bitmap')
-rw-r--r--apps/gui/bitmap/list-skinned.c3
-rw-r--r--apps/gui/bitmap/list.c8
2 files changed, 3 insertions, 8 deletions
diff --git a/apps/gui/bitmap/list-skinned.c b/apps/gui/bitmap/list-skinned.c
index a67ac8cb0a..bebff821f8 100644
--- a/apps/gui/bitmap/list-skinned.c
+++ b/apps/gui/bitmap/list-skinned.c
@@ -213,8 +213,7 @@ bool skinlist_draw(struct screen *display, struct gui_synclist *list)
213 if (list_start_item+cur_line+1 > list->nb_items) 213 if (list_start_item+cur_line+1 > list->nb_items)
214 break; 214 break;
215 current_drawing_line = list_start_item+cur_line; 215 current_drawing_line = list_start_item+cur_line;
216 is_selected = list->show_selection_marker && 216 is_selected = list_start_item+cur_line == list->selected_item;
217 list_start_item+cur_line == list->selected_item;
218 217
219 for (viewport = SKINOFFSETTOPTR(get_skin_buffer(wps.data), listcfg[screen]->data->tree); 218 for (viewport = SKINOFFSETTOPTR(get_skin_buffer(wps.data), listcfg[screen]->data->tree);
220 viewport; 219 viewport;
diff --git a/apps/gui/bitmap/list.c b/apps/gui/bitmap/list.c
index b2987e9853..ca58d713d0 100644
--- a/apps/gui/bitmap/list.c
+++ b/apps/gui/bitmap/list.c
@@ -196,10 +196,7 @@ void list_draw(struct screen *display, struct gui_synclist *list)
196 const int list_start_item = list->start_item[screen]; 196 const int list_start_item = list->start_item[screen];
197 const bool scrollbar_in_left = (list->scrollbar == SCROLLBAR_LEFT); 197 const bool scrollbar_in_left = (list->scrollbar == SCROLLBAR_LEFT);
198 const bool scrollbar_in_right = (list->scrollbar == SCROLLBAR_RIGHT); 198 const bool scrollbar_in_right = (list->scrollbar == SCROLLBAR_RIGHT);
199 199 const bool show_cursor = (list->cursor_style == SYNCLIST_CURSOR_NOSTYLE);
200 const bool show_cursor = list->show_selection_marker &&
201 (list->cursor_style == SYNCLIST_CURSOR_NOSTYLE);
202
203 const bool have_icons = list->callback_get_item_icon && list->show_icons; 200 const bool have_icons = list->callback_get_item_icon && list->show_icons;
204 201
205 struct viewport *parent = (list->parent[screen]); 202 struct viewport *parent = (list->parent[screen]);
@@ -365,8 +362,7 @@ void list_draw(struct screen *display, struct gui_synclist *list)
365 !hide_selection && 362 !hide_selection &&
366#endif 363#endif
367 i >= list->selected_item 364 i >= list->selected_item
368 && i < list->selected_item + list->selected_size 365 && i < list->selected_item + list->selected_size)
369 && list->show_selection_marker)
370 {/* The selected item must be displayed scrolling */ 366 {/* The selected item must be displayed scrolling */
371#ifdef HAVE_LCD_COLOR 367#ifdef HAVE_LCD_COLOR
372 if (list->selection_color) 368 if (list->selection_color)