(Qt) Only call log_msg when the Qt companion UI window is active

This commit is contained in:
twinaphex 2020-06-26 21:45:09 +02:00
parent 1b86ea43c3
commit 0946604627
6 changed files with 34 additions and 18 deletions

View File

@ -897,22 +897,23 @@ static const location_driver_t *location_drivers[] = {
}; };
static ui_companion_driver_t ui_companion_null = { static ui_companion_driver_t ui_companion_null = {
NULL, NULL, /* init */
NULL, NULL, /* deinit */
NULL, NULL, /* toggle */
NULL, NULL, /* event_command */
NULL, NULL, /* notify_content_loaded */
NULL, NULL, /* notify_list_loaded */
NULL, NULL, /* notify_refresh */
NULL, NULL, /* msg_queue_push */
NULL, NULL, /* render_messagebox */
NULL, NULL, /* get_main_window */
NULL, NULL, /* log_msg */
NULL, NULL, /* is_active */
NULL, NULL, /* browser_window */
NULL, NULL, /* msg_window */
NULL, NULL, /* window */
"null", NULL, /* application */
"null", /* ident */
}; };
@ -20436,9 +20437,11 @@ void ui_companion_driver_log_msg(const char *msg)
settings_t *settings = p_rarch->configuration_settings; settings_t *settings = p_rarch->configuration_settings;
bool qt_is_inited = p_rarch->qt_is_inited; bool qt_is_inited = p_rarch->qt_is_inited;
bool desktop_menu_enable = settings->bools.desktop_menu_enable; 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 (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); ui_companion_qt.log_msg(p_rarch->ui_companion_qt_data, msg);
#endif #endif
} }

View File

@ -721,6 +721,7 @@ ui_companion_driver_t ui_companion_cocoa = {
NULL, /* render_messagebox */ NULL, /* render_messagebox */
ui_companion_cocoa_get_main_window, ui_companion_cocoa_get_main_window,
NULL, /* log_msg */ NULL, /* log_msg */
NULL, /* is_active */
&ui_browser_window_cocoa, &ui_browser_window_cocoa,
&ui_msg_window_cocoa, &ui_msg_window_cocoa,
&ui_window_cocoa, &ui_window_cocoa,

View File

@ -660,6 +660,7 @@ ui_companion_driver_t ui_companion_cocoatouch = {
ui_companion_cocoatouch_render_messagebox, ui_companion_cocoatouch_render_messagebox,
NULL, /* get_main_window */ NULL, /* get_main_window */
NULL, /* log_msg */ NULL, /* log_msg */
NULL, /* is_active */
NULL, /* ui_browser_window_null */ NULL, /* ui_browser_window_null */
NULL, /* ui_msg_window_null */ NULL, /* ui_msg_window_null */
NULL, /* ui_window_null */ NULL, /* ui_window_null */

View File

@ -722,6 +722,14 @@ static void ui_companion_qt_log_msg(void *data, const char *msg)
win_handle->qtWindow->appendLogMessage(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, void ui_companion_qt_msg_queue_push(void *data,
const char *msg, unsigned priority, unsigned duration, bool flush) const char *msg, unsigned priority, unsigned duration, bool flush)
{ {
@ -749,6 +757,7 @@ ui_companion_driver_t ui_companion_qt = {
NULL, NULL,
NULL, NULL,
ui_companion_qt_log_msg, ui_companion_qt_log_msg,
ui_companion_qt_is_active,
&ui_browser_window_qt, &ui_browser_window_qt,
&ui_msg_window_qt, &ui_msg_window_qt,
&ui_window_qt, &ui_window_qt,

View File

@ -124,7 +124,8 @@ ui_companion_driver_t ui_companion_win32 = {
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL, NULL, /* log_msg */
NULL, /* is_active */
&ui_browser_window_win32, &ui_browser_window_win32,
&ui_msg_window_win32, &ui_msg_window_win32,
&ui_window_win32, &ui_window_win32,

View File

@ -136,6 +136,7 @@ typedef struct ui_companion_driver
void (*render_messagebox)(const char *msg); void (*render_messagebox)(const char *msg);
void *(*get_main_window)(void *data); void *(*get_main_window)(void *data);
void (*log_msg)(void *data, const char *msg); void (*log_msg)(void *data, const char *msg);
bool (*is_active)(void *data);
ui_browser_window_t *browser_window; ui_browser_window_t *browser_window;
ui_msg_window_t *msg_window; ui_msg_window_t *msg_window;
ui_window_t *window; ui_window_t *window;