diff options
Diffstat (limited to 'apps/gui/list.c')
-rw-r--r-- | apps/gui/list.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/apps/gui/list.c b/apps/gui/list.c index 7fe06f9aad..ca3ae02bbd 100644 --- a/apps/gui/list.c +++ b/apps/gui/list.c | |||
@@ -61,6 +61,11 @@ void list_draw(struct screen *display, struct gui_synclist *list); | |||
61 | static long last_dirty_tick; | 61 | static long last_dirty_tick; |
62 | static struct viewport parent[NB_SCREENS]; | 62 | static struct viewport parent[NB_SCREENS]; |
63 | 63 | ||
64 | static bool list_is_dirty(struct gui_synclist *list) | ||
65 | { | ||
66 | return TIME_BEFORE(list->dirty_tick, last_dirty_tick); | ||
67 | } | ||
68 | |||
64 | static void list_force_reinit(void *param) | 69 | static void list_force_reinit(void *param) |
65 | { | 70 | { |
66 | (void)param; | 71 | (void)param; |
@@ -109,6 +114,7 @@ static struct viewport parent[NB_SCREENS] = | |||
109 | }; | 114 | }; |
110 | 115 | ||
111 | #define list_init_viewports(a) | 116 | #define list_init_viewports(a) |
117 | #define list_is_dirty(a) false | ||
112 | #endif | 118 | #endif |
113 | 119 | ||
114 | #ifdef HAVE_LCD_BITMAP | 120 | #ifdef HAVE_LCD_BITMAP |
@@ -229,24 +235,17 @@ int gui_list_get_item_offset(struct gui_synclist * gui_list, | |||
229 | } | 235 | } |
230 | #endif | 236 | #endif |
231 | 237 | ||
232 | static bool is_dirty(struct gui_synclist *list) | ||
233 | { | ||
234 | return TIME_BEFORE(list->dirty_tick, last_dirty_tick); | ||
235 | } | ||
236 | |||
237 | /* | 238 | /* |
238 | * Force a full screen update. | 239 | * Force a full screen update. |
239 | */ | 240 | */ |
240 | void gui_synclist_draw(struct gui_synclist *gui_list) | 241 | void gui_synclist_draw(struct gui_synclist *gui_list) |
241 | { | 242 | { |
242 | int i; | 243 | int i; |
243 | #ifdef HAVE_LCD_BITMAP | 244 | if (list_is_dirty(gui_list)) |
244 | if (is_dirty(gui_list)) | ||
245 | { | 245 | { |
246 | list_init_viewports(gui_list); | 246 | list_init_viewports(gui_list); |
247 | gui_synclist_select_item(gui_list, gui_list->selected_item); | 247 | gui_synclist_select_item(gui_list, gui_list->selected_item); |
248 | } | 248 | } |
249 | #endif | ||
250 | FOR_NB_SCREENS(i) | 249 | FOR_NB_SCREENS(i) |
251 | { | 250 | { |
252 | #ifdef HAVE_LCD_BITMAP | 251 | #ifdef HAVE_LCD_BITMAP |