xwayland: Use wl_output.name for XRandR
If wl_output provides us with an output name, use that as well. If we have both xdg_output.name and wl_output.name (from version >= 4), prefer the latter. Signed-off-by: Olivier Fourdan <ofourdan@redhat.com># See-also: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/189 Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
This commit is contained in:
parent
b63ef10f18
commit
0c93394d72
|
@ -694,11 +694,28 @@ output_handle_scale(void *data, struct wl_output *wl_output, int32_t factor)
|
|||
{
|
||||
}
|
||||
|
||||
static void
|
||||
output_handle_name(void *data, struct wl_output *wl_output,
|
||||
const char *name)
|
||||
{
|
||||
struct xwl_output *xwl_output = data;
|
||||
|
||||
xwl_output_set_name(xwl_output, name);
|
||||
}
|
||||
|
||||
static void
|
||||
output_handle_description(void *data, struct wl_output *wl_output,
|
||||
const char *description)
|
||||
{
|
||||
}
|
||||
|
||||
static const struct wl_output_listener output_listener = {
|
||||
output_handle_geometry,
|
||||
output_handle_mode,
|
||||
output_handle_done,
|
||||
output_handle_scale
|
||||
output_handle_scale,
|
||||
output_handle_name,
|
||||
output_handle_description,
|
||||
};
|
||||
|
||||
static void
|
||||
|
@ -738,6 +755,9 @@ xdg_output_handle_name(void *data, struct zxdg_output_v1 *xdg_output,
|
|||
{
|
||||
struct xwl_output *xwl_output = data;
|
||||
|
||||
if (wl_output_get_version(xwl_output->output) >= 4)
|
||||
return; /* wl_output.name is preferred */
|
||||
|
||||
xwl_output_set_name(xwl_output, name);
|
||||
}
|
||||
|
||||
|
@ -804,7 +824,7 @@ xwl_output_create(struct xwl_screen *xwl_screen, uint32_t id,
|
|||
}
|
||||
|
||||
xwl_output->output = wl_registry_bind(xwl_screen->registry, id,
|
||||
&wl_output_interface, min(version, 2));
|
||||
&wl_output_interface, min(version, 4));
|
||||
if (!xwl_output->output) {
|
||||
ErrorF("Failed binding wl_output\n");
|
||||
goto err;
|
||||
|
|
Loading…
Reference in New Issue