From 5361d157ff6b11d5cb7a9f989abe5f376c9e2efa Mon Sep 17 00:00:00 2001 From: Marius Vlad Date: Wed, 24 Aug 2022 11:43:06 +0300 Subject: [PATCH] libweston: Send name,description, update wl_output to ver 4 These have been in wayland a while back with version 1.20.0. We also need to update the test client helper with this bump, as those bind to version 4. Upstream-Status: Pending Signed-off-by: Marius Vlad --- libweston/compositor.c | 14 +++++++++++++- tests/weston-test-client-helper.c | 18 ++++++++++++++++++ tests/weston-test-client-helper.h | 2 ++ 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/libweston/compositor.c b/libweston/compositor.c index 1670c50..af7c71e 100644 --- a/libweston/compositor.c +++ b/libweston/compositor.c @@ -184,6 +184,12 @@ weston_mode_switch_send_events(struct weston_head *head, if (version >= WL_OUTPUT_SCALE_SINCE_VERSION && scale_changed) wl_output_send_scale(resource, output->current_scale); + if (version >= WL_OUTPUT_NAME_SINCE_VERSION) + wl_output_send_name(resource, head->name); + + if (version >= WL_OUTPUT_DESCRIPTION_SINCE_VERSION) + wl_output_send_description(resource, head->model); + if (version >= WL_OUTPUT_DONE_SINCE_VERSION) wl_output_send_done(resource); } @@ -5198,6 +5204,12 @@ bind_output(struct wl_client *client, mode->refresh); } + if (version >= WL_OUTPUT_NAME_SINCE_VERSION) + wl_output_send_name(resource, head->name); + + if (version >= WL_OUTPUT_DESCRIPTION_SINCE_VERSION) + wl_output_send_description(resource, head->model); + if (version >= WL_OUTPUT_DONE_SINCE_VERSION) wl_output_send_done(resource); } @@ -5206,7 +5218,7 @@ static void weston_head_add_global(struct weston_head *head) { head->global = wl_global_create(head->compositor->wl_display, - &wl_output_interface, 3, + &wl_output_interface, 4, head, bind_output); } diff --git a/tests/weston-test-client-helper.c b/tests/weston-test-client-helper.c index 01c4b80..8369c40 100644 --- a/tests/weston-test-client-helper.c +++ b/tests/weston-test-client-helper.c @@ -715,6 +715,20 @@ output_handle_scale(void *data, output->scale = scale; } +static void +output_handle_name(void *data, struct wl_output *wl_output, const char *name) +{ + struct output *output = data; + output->name = strdup(name); +} + +static void +output_handle_description(void *data, struct wl_output *wl_output, const char *desc) +{ + struct output *output = data; + output->name = strdup(desc); +} + static void output_handle_done(void *data, struct wl_output *wl_output) @@ -729,6 +743,8 @@ static const struct wl_output_listener output_listener = { output_handle_mode, output_handle_done, output_handle_scale, + output_handle_name, + output_handle_description, }; static void @@ -737,6 +753,8 @@ output_destroy(struct output *output) assert(wl_proxy_get_version((struct wl_proxy *)output->wl_output) >= 3); wl_output_release(output->wl_output); wl_list_remove(&output->link); + free(output->name); + free(output->desc); free(output); } diff --git a/tests/weston-test-client-helper.h b/tests/weston-test-client-helper.h index 8e1505d..9e05009 100644 --- a/tests/weston-test-client-helper.h +++ b/tests/weston-test-client-helper.h @@ -163,6 +163,8 @@ struct output { int height; int scale; int initialized; + char *name; + char *desc; }; struct buffer { -- 2.35.1