wayland: use xdg_output's description if there's no 'model'

This commit is contained in:
Daniel Eklöf 2020-06-25 17:30:51 +02:00
parent bc82d4ee28
commit 32e70263f9
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 13 additions and 4 deletions

View file

@ -259,13 +259,15 @@ xdg_output_handle_name(void *data, struct zxdg_output_v1 *xdg_output,
const char *name)
{
struct monitor *mon = data;
mon->name = strdup(name);
mon->name = name != NULL ? strdup(name) : NULL;
}
static void
xdg_output_handle_description(void *data, struct zxdg_output_v1 *xdg_output,
const char *description)
{
struct monitor *mon = data;
mon->description = description != NULL ? strdup(description) : NULL;
}
static const struct zxdg_output_v1_listener xdg_output_listener = {
@ -666,13 +668,14 @@ handle_global(void *data, struct wl_registry *registry,
static void
monitor_destroy(struct monitor *mon)
{
free(mon->name);
if (mon->xdg != NULL)
zxdg_output_v1_destroy(mon->xdg);
if (mon->output != NULL)
wl_output_destroy(mon->output);
free(mon->make);
free(mon->model);
free(mon->name);
free(mon->description);
}
static void
@ -842,7 +845,8 @@ wayl_init(const struct config *conf, struct fdm *fdm)
"%s: %dx%d+%dx%d@%dHz %s %.2f\" scale=%d PPI=%dx%d (physical) PPI=%dx%d (logical)",
it->item.name, it->item.dim.px_real.width, it->item.dim.px_real.height,
it->item.x, it->item.y, (int)round(it->item.refresh),
it->item.model, it->item.inch, it->item.scale,
it->item.model != NULL ? it->item.model : it->item.description,
it->item.inch, it->item.scale,
it->item.ppi.real.x, it->item.ppi.real.y,
it->item.ppi.scaled.x, it->item.ppi.scaled.y);
}

View file

@ -19,7 +19,6 @@ struct monitor {
struct wayland *wayl;
struct wl_output *output;
struct zxdg_output_v1 *xdg;
char *name;
uint32_t wl_name;
int x;
@ -63,8 +62,14 @@ struct monitor {
float refresh;
enum wl_output_subpixel subpixel;
/* From wl_output */
char *make;
char *model;
/* From xdg_output */
char *name;
char *description;
float inch; /* e.g. 24" */
};