Commit 44136750 authored by Cici Ruan's avatar Cici Ruan Committed by Commit Bot

exo: Update wl_output to version 3

There is wayland protocol error when unplugging the external display, because
wl_output version is not correct.

Bug:  961863
Test: Manual test by unplugging the external display. Wayland service does not
      reconnect due to protocol error.

Change-Id: I9c2ec8c942f4d53a3e750a56f5a55458763561bf
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1699507
Auto-Submit: Cici Ruan <cuicuiruan@google.com>
Commit-Queue: Cici Ruan <cuicuiruan@google.com>
Reviewed-by: default avatarMitsuru Oshima <oshima@chromium.org>
Reviewed-by: default avatarDominik Laskowski <domlaskowski@chromium.org>
Cr-Commit-Position: refs/heads/master@{#678046}
parent f6dffe0d
...@@ -22,6 +22,12 @@ namespace wayland { ...@@ -22,6 +22,12 @@ namespace wayland {
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// wl_output_interface: // wl_output_interface:
void output_release(wl_client* client, wl_resource* resource) {
wl_resource_destroy(resource);
}
const struct wl_output_interface output_implementation = {output_release};
void bind_output(wl_client* client, void* data, uint32_t version, uint32_t id) { void bind_output(wl_client* client, void* data, uint32_t version, uint32_t id) {
WaylandDisplayOutput* output = static_cast<WaylandDisplayOutput*>(data); WaylandDisplayOutput* output = static_cast<WaylandDisplayOutput*>(data);
...@@ -29,7 +35,7 @@ void bind_output(wl_client* client, void* data, uint32_t version, uint32_t id) { ...@@ -29,7 +35,7 @@ void bind_output(wl_client* client, void* data, uint32_t version, uint32_t id) {
client, &wl_output_interface, std::min(version, kWlOutputVersion), id); client, &wl_output_interface, std::min(version, kWlOutputVersion), id);
SetImplementation( SetImplementation(
resource, nullptr, resource, &output_implementation,
std::make_unique<WaylandDisplayObserver>(output->id(), resource)); std::make_unique<WaylandDisplayObserver>(output->id(), resource));
} }
......
...@@ -12,7 +12,7 @@ struct wl_client; ...@@ -12,7 +12,7 @@ struct wl_client;
namespace exo { namespace exo {
namespace wayland { namespace wayland {
constexpr uint32_t kWlOutputVersion = 2; constexpr uint32_t kWlOutputVersion = 3;
void bind_output(wl_client* client, void* data, uint32_t version, uint32_t id); void bind_output(wl_client* client, void* data, uint32_t version, uint32_t id);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment