diff --git a/retroarch.c b/retroarch.c index 5acccc0845..8e9d3df806 100644 --- a/retroarch.c +++ b/retroarch.c @@ -897,22 +897,23 @@ static const location_driver_t *location_drivers[] = { }; static ui_companion_driver_t ui_companion_null = { - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - "null", + NULL, /* init */ + NULL, /* deinit */ + NULL, /* toggle */ + NULL, /* event_command */ + NULL, /* notify_content_loaded */ + NULL, /* notify_list_loaded */ + NULL, /* notify_refresh */ + NULL, /* msg_queue_push */ + NULL, /* render_messagebox */ + NULL, /* get_main_window */ + NULL, /* log_msg */ + NULL, /* is_active */ + NULL, /* browser_window */ + NULL, /* msg_window */ + NULL, /* window */ + NULL, /* application */ + "null", /* ident */ }; @@ -20436,9 +20437,11 @@ void ui_companion_driver_log_msg(const char *msg) settings_t *settings = p_rarch->configuration_settings; bool qt_is_inited = p_rarch->qt_is_inited; bool desktop_menu_enable = settings->bools.desktop_menu_enable; + bool window_is_active = p_rarch->ui_companion_qt_data && qt_is_inited + && ui_companion_qt.is_active(p_rarch->ui_companion_qt_data); if (desktop_menu_enable) - if (p_rarch->ui_companion_qt_data && qt_is_inited) + if (window_is_active) ui_companion_qt.log_msg(p_rarch->ui_companion_qt_data, msg); #endif } diff --git a/ui/drivers/ui_cocoa.m b/ui/drivers/ui_cocoa.m index 564d256726..7df8c1ac99 100644 --- a/ui/drivers/ui_cocoa.m +++ b/ui/drivers/ui_cocoa.m @@ -721,6 +721,7 @@ ui_companion_driver_t ui_companion_cocoa = { NULL, /* render_messagebox */ ui_companion_cocoa_get_main_window, NULL, /* log_msg */ + NULL, /* is_active */ &ui_browser_window_cocoa, &ui_msg_window_cocoa, &ui_window_cocoa, diff --git a/ui/drivers/ui_cocoatouch.m b/ui/drivers/ui_cocoatouch.m index 8a9cad2eb1..ba8c954366 100644 --- a/ui/drivers/ui_cocoatouch.m +++ b/ui/drivers/ui_cocoatouch.m @@ -660,6 +660,7 @@ ui_companion_driver_t ui_companion_cocoatouch = { ui_companion_cocoatouch_render_messagebox, NULL, /* get_main_window */ NULL, /* log_msg */ + NULL, /* is_active */ NULL, /* ui_browser_window_null */ NULL, /* ui_msg_window_null */ NULL, /* ui_window_null */ diff --git a/ui/drivers/ui_qt.cpp b/ui/drivers/ui_qt.cpp index dd512e8de7..8961153445 100644 --- a/ui/drivers/ui_qt.cpp +++ b/ui/drivers/ui_qt.cpp @@ -722,6 +722,14 @@ static void ui_companion_qt_log_msg(void *data, const char *msg) win_handle->qtWindow->appendLogMessage(msg); } +static bool ui_companion_qt_is_active(void *data) +{ + ui_companion_qt_t *handle = (ui_companion_qt_t*)data; + ui_window_qt_t *win_handle = (ui_window_qt_t*)handle->window; + + return win_handle->qtWindow->isVisible(); +} + void ui_companion_qt_msg_queue_push(void *data, const char *msg, unsigned priority, unsigned duration, bool flush) { @@ -749,6 +757,7 @@ ui_companion_driver_t ui_companion_qt = { NULL, NULL, ui_companion_qt_log_msg, + ui_companion_qt_is_active, &ui_browser_window_qt, &ui_msg_window_qt, &ui_window_qt, diff --git a/ui/drivers/ui_win32.c b/ui/drivers/ui_win32.c index a29e05bd57..57143055ba 100644 --- a/ui/drivers/ui_win32.c +++ b/ui/drivers/ui_win32.c @@ -124,7 +124,8 @@ ui_companion_driver_t ui_companion_win32 = { NULL, NULL, NULL, - NULL, + NULL, /* log_msg */ + NULL, /* is_active */ &ui_browser_window_win32, &ui_msg_window_win32, &ui_window_win32, diff --git a/ui/ui_companion_driver.h b/ui/ui_companion_driver.h index ffe621408e..3c6fb1b821 100644 --- a/ui/ui_companion_driver.h +++ b/ui/ui_companion_driver.h @@ -136,6 +136,7 @@ typedef struct ui_companion_driver void (*render_messagebox)(const char *msg); void *(*get_main_window)(void *data); void (*log_msg)(void *data, const char *msg); + bool (*is_active)(void *data); ui_browser_window_t *browser_window; ui_msg_window_t *msg_window; ui_window_t *window;