diff options
Diffstat (limited to 'apps/gui')
-rw-r--r-- | apps/gui/list.c | 9 |
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 | ||
52 | static long last_dirty_tick; | 52 | static long last_dirty_tick; |
53 | static struct viewport parent[NB_SCREENS]; | 53 | static struct viewport parent[NB_SCREENS]; |
54 | static struct gui_synclist *current_lists; | ||
54 | 55 | ||
55 | static bool list_is_dirty(struct gui_synclist *list) | 56 | static 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 | ||
60 | static void list_force_reinit(unsigned short id, void *param, void *last_dirty_tick) | 61 | static 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 | ||
73 | static void list_init_viewports(struct gui_synclist *list) | 79 | static 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 | */ |
593 | static struct gui_synclist *current_lists; | ||
594 | static bool ui_update_event_registered = false; | 599 | static bool ui_update_event_registered = false; |
595 | static void _lists_uiviewport_update_callback(unsigned short id, void *data) | 600 | static void _lists_uiviewport_update_callback(unsigned short id, void *data) |
596 | { | 601 | { |