summaryrefslogtreecommitdiff
path: root/apps/gui
diff options
context:
space:
mode:
Diffstat (limited to 'apps/gui')
-rw-r--r--apps/gui/list.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/apps/gui/list.c b/apps/gui/list.c
index 85046ead54..5368636896 100644
--- a/apps/gui/list.c
+++ b/apps/gui/list.c
@@ -51,6 +51,7 @@ void list_draw(struct screen *display, struct gui_synclist *list);
51 51
52static long last_dirty_tick; 52static long last_dirty_tick;
53static struct viewport parent[NB_SCREENS]; 53static struct viewport parent[NB_SCREENS];
54static struct gui_synclist *current_lists;
54 55
55static bool list_is_dirty(struct gui_synclist *list) 56static bool list_is_dirty(struct gui_synclist *list)
56{ 57{
@@ -59,8 +60,12 @@ static bool list_is_dirty(struct gui_synclist *list)
59 60
60static void list_force_reinit(unsigned short id, void *param, void *last_dirty_tick) 61static void list_force_reinit(unsigned short id, void *param, void *last_dirty_tick)
61{ 62{
62 (void)id;
63 (void)param; 63 (void)param;
64 if (id == SYS_EVENT_USB_INSERTED) /* Disable the skin redraw callback -- Data may not be valid after USB unplug*/
65 {
66 current_lists = NULL;
67 return;
68 }
64 *(int *)last_dirty_tick = current_tick; 69 *(int *)last_dirty_tick = current_tick;
65} 70}
66 71
@@ -68,6 +73,7 @@ void list_init(void)
68{ 73{
69 last_dirty_tick = current_tick; 74 last_dirty_tick = current_tick;
70 add_event_ex(GUI_EVENT_THEME_CHANGED, false, list_force_reinit, &last_dirty_tick); 75 add_event_ex(GUI_EVENT_THEME_CHANGED, false, list_force_reinit, &last_dirty_tick);
76 add_event_ex(SYS_EVENT_USB_INSERTED, false, list_force_reinit, NULL);
71} 77}
72 78
73static void list_init_viewports(struct gui_synclist *list) 79static void list_init_viewports(struct gui_synclist *list)
@@ -590,7 +596,6 @@ bool gui_synclist_keyclick_callback(int action, void* data)
590 * if something is using the list UI they *must* be calling those 596 * if something is using the list UI they *must* be calling those
591 * two functions in the correct order or the list wont work. 597 * two functions in the correct order or the list wont work.
592 */ 598 */
593static struct gui_synclist *current_lists;
594static bool ui_update_event_registered = false; 599static bool ui_update_event_registered = false;
595static void _lists_uiviewport_update_callback(unsigned short id, void *data) 600static void _lists_uiviewport_update_callback(unsigned short id, void *data)
596{ 601{