From 646cacca0e81c95ed72f97d52dbbc22b4fc3ec8f Mon Sep 17 00:00:00 2001 From: akallabeth Date: Tue, 3 Dec 2024 13:05:51 +0100 Subject: [PATCH] [core,settings] add instructions on fail Add bug reporting instructions for failing monitor configurations --- libfreerdp/core/settings.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/libfreerdp/core/settings.c b/libfreerdp/core/settings.c index 17e4a4580..f963d37f7 100644 --- a/libfreerdp/core/settings.c +++ b/libfreerdp/core/settings.c @@ -679,14 +679,30 @@ static BOOL freerdp_settings_client_monitors_check_primary_and_origin(const rdpS BOOL freerdp_settings_check_client_after_preconnect(const rdpSettings* settings) { - log_monitor_configuration(settings, WLog_Get(TAG), WLOG_DEBUG); + wLog* log = WLog_Get(TAG); + BOOL rc = TRUE; + log_monitor_configuration(settings, log, WLOG_DEBUG); if (freerdp_settings_client_monitors_overlap(settings)) - return FALSE; + rc = FALSE; if (freerdp_settings_client_monitors_have_gaps(settings)) - return FALSE; + rc = FALSE; if (!freerdp_settings_client_monitors_check_primary_and_origin(settings)) - return FALSE; - return TRUE; + rc = FALSE; + if (!rc) + { + DWORD level = WLOG_ERROR; + WLog_Print(log, level, "Invalid or unsupported monitor configuration detected"); + WLog_Print(log, level, "Check if the configuration is valid."); + WLog_Print(log, level, + "If you suspect a bug create a new issue at " + "https://github.com/FreeRDP/FreeRDP/issues/new"); + WLog_Print( + log, level, + "Provide at least the following log lines detailing your monitor configuration:"); + log_monitor_configuration(settings, log, level); + } + + return rc; } BOOL freerdp_settings_set_default_order_support(rdpSettings* settings)