diff --git a/menu/menu_display.c b/menu/menu_display.c index 71bc73f333..1aef01d8ad 100644 --- a/menu/menu_display.c +++ b/menu/menu_display.c @@ -163,6 +163,7 @@ bool menu_display_font_flush_block(menu_handle_t *menu, void menu_display_free_main_font(menu_handle_t *menu) { driver_t *driver = driver_get_ptr(); + if (menu->font.buf) { driver->font_osd_driver->free(menu->font.buf); diff --git a/menu/menu_entries_cbs_refresh.c b/menu/menu_entries_cbs_refresh.c index 860bca82bc..76e1de882a 100644 --- a/menu/menu_entries_cbs_refresh.c +++ b/menu/menu_entries_cbs_refresh.c @@ -20,6 +20,7 @@ static int action_refresh_default(file_list_t *list, file_list_t *menu_list) { int ret = 0; + driver_t *driver = driver_get_ptr(); menu_handle_t *menu = menu_driver_get_ptr(); if (!menu) return -1; @@ -27,6 +28,14 @@ static int action_refresh_default(file_list_t *list, file_list_t *menu_list) ret = menu_entries_deferred_push(list, menu_list); menu->need_refresh = false; + + if (ret == 0) + { + const ui_companion_driver_t *ui = ui_companion_get_ptr(); + + if (ui) + ui->notify_list_loaded(driver->ui_companion_data, list, menu_list); + } return ret; } diff --git a/ui/drivers/ui_cocoa.m b/ui/drivers/ui_cocoa.m index 806d2cf5d6..f4ce33f6d6 100644 --- a/ui/drivers/ui_cocoa.m +++ b/ui/drivers/ui_cocoa.m @@ -459,6 +459,14 @@ static void ui_companion_cocoa_event_command(void *data, enum event_command cmd) event_command(cmd); } +static void ui_companion_cocoa_notify_list_pushed(void *data, + file_list_t *list, file_list_t *menu_list) +{ + (void)data; + (void)list; + (void)menu_list; +} + const ui_companion_driver_t ui_companion_cocoa = { ui_companion_cocoa_init, ui_companion_cocoa_deinit, @@ -466,5 +474,6 @@ const ui_companion_driver_t ui_companion_cocoa = { ui_companion_cocoa_toggle, ui_companion_cocoa_event_command, ui_companion_cocoa_notify_content_loaded, + ui_companion_cocoa_notify_list_pushed, "cocoa", }; diff --git a/ui/drivers/ui_cocoatouch.m b/ui/drivers/ui_cocoatouch.m index 5c5c70cf9b..7b1ed981ad 100644 --- a/ui/drivers/ui_cocoatouch.m +++ b/ui/drivers/ui_cocoatouch.m @@ -509,6 +509,14 @@ static void ui_companion_cocoatouch_event_command(void *data, event_command(cmd); } +static void ui_companion_cocoatouch_notify_list_pushed(void *data, + file_list_t *list, file_list_t *menu_list) +{ + (void)data; + (void)list; + (void)menu_list; +} + const ui_companion_driver_t ui_companion_cocoatouch = { ui_companion_cocoatouch_init, ui_companion_cocoatouch_deinit, @@ -516,5 +524,6 @@ const ui_companion_driver_t ui_companion_cocoatouch = { ui_companion_cocoatouch_toggle, ui_companion_cocoatouch_event_command, ui_companion_cocoatouch_notify_content_loaded, + ui_companion_cocoatouch_notify_list_pushed, "cocoatouch", }; diff --git a/ui/drivers/ui_null.c b/ui/drivers/ui_null.c index d6b2172fd5..ef292db946 100644 --- a/ui/drivers/ui_null.c +++ b/ui/drivers/ui_null.c @@ -69,6 +69,14 @@ static void ui_companion_null_event_command(void *data, enum event_command cmd) (void)cmd; } +static void ui_companion_null_notify_list_pushed(void *data, + file_list_t *list, file_list_t *menu_list) +{ + (void)data; + (void)list; + (void)menu_list; +} + const ui_companion_driver_t ui_companion_null = { ui_companion_null_init, ui_companion_null_deinit, @@ -76,5 +84,6 @@ const ui_companion_driver_t ui_companion_null = { ui_companion_null_toggle, ui_companion_null_event_command, ui_companion_null_notify_content_loaded, + ui_companion_null_notify_list_pushed, "null", }; diff --git a/ui/drivers/ui_qt.c b/ui/drivers/ui_qt.c index e127b940a4..df3455729a 100644 --- a/ui/drivers/ui_qt.c +++ b/ui/drivers/ui_qt.c @@ -114,6 +114,14 @@ static void ui_companion_qt_event_command(void *data, enum event_command cmd) slock_unlock(handle->lock); } +static void ui_companion_qt_notify_list_pushed(void *data, file_list_t *list, + file_list_t *menu_list) +{ + (void)data; + (void)list; + (void)menu_list; +} + const ui_companion_driver_t ui_companion_qt = { ui_companion_qt_init, ui_companion_qt_deinit, @@ -121,5 +129,6 @@ const ui_companion_driver_t ui_companion_qt = { ui_companion_qt_toggle, ui_companion_qt_event_command, ui_companion_qt_notify_content_loaded, + ui_companion_qt_notify_list_pushed, "qt", }; diff --git a/ui/ui_companion_driver.h b/ui/ui_companion_driver.h index 9abdc2abef..6176c14e91 100644 --- a/ui/ui_companion_driver.h +++ b/ui/ui_companion_driver.h @@ -20,6 +20,8 @@ #include #include +#include + #ifdef HAVE_CONFIG_H #include "../config.h" #endif @@ -38,7 +40,7 @@ typedef struct ui_companion_driver void (*toggle)(void *data); void (*event_command)(void *data, enum event_command action); void (*notify_content_loaded)(void *data); - + void (*notify_list_loaded)(void *data, file_list_t *list, file_list_t *menu_list); const char *ident; } ui_companion_driver_t;