monitor: Allow vendor/product/serial to return NULL

Same applies to MetaOutput. The reason for this is to make it possible
to more reliably know when there was EDID telling us about these
details. This will be used for colord integration.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2141>
This commit is contained in:
Jonas Ådahl
2021-10-28 15:25:58 +02:00
committed by Marge Bot
parent f939a7ca29
commit ccb6a7e84f
8 changed files with 60 additions and 37 deletions

View File

@ -194,13 +194,20 @@ meta_monitor_generate_spec (MetaMonitor *monitor)
const MetaOutputInfo *output_info =
meta_monitor_get_main_output_info (monitor);
MetaMonitorSpec *monitor_spec;
const char *vendor;
const char *product;
const char *serial;
vendor = output_info->vendor;
product = output_info->product;
serial = output_info->serial;
monitor_spec = g_new0 (MetaMonitorSpec, 1);
*monitor_spec = (MetaMonitorSpec) {
.connector = g_strdup (output_info->name),
.vendor = g_strdup (output_info->vendor),
.product = g_strdup (output_info->product),
.serial = g_strdup (output_info->serial),
.vendor = g_strdup (vendor ? vendor : "unknown"),
.product = g_strdup (product ? product : "unknown"),
.serial = g_strdup (serial ? serial : "unknown"),
};
priv->spec = monitor_spec;
@ -260,8 +267,7 @@ meta_monitor_make_display_name (MetaMonitor *monitor,
}
vendor = meta_monitor_get_vendor (monitor);
if (g_strcmp0 (vendor, "unknown") != 0)
if (vendor)
{
vendor_name = meta_monitor_manager_get_vendor_name (monitor_manager,
vendor);