From bbd4a8f85b2e0ddaa94458569b8b5aa4128c52b1 Mon Sep 17 00:00:00 2001 From: Giulio Camuffo Date: Tue, 30 Sep 2014 17:09:49 +0300 Subject: Fix the compositor's wayland versioning MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We cannot just assume all clients implement the same version of the various interfaces as the compositor does. Keep track of them, and react accordingly when creating a resource or sending an event. Change-Id: I9792433a14d49c5c4df0c892fc1349ce0dfb0d43 Reviewed-by: Jørgen Lind --- tests/auto/client/mockcompositor.cpp | 2 +- tests/auto/client/mockinput.cpp | 10 +++++----- tests/auto/client/mocksurface.cpp | 4 ++-- tests/auto/client/mocksurface.h | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) (limited to 'tests/auto') diff --git a/tests/auto/client/mockcompositor.cpp b/tests/auto/client/mockcompositor.cpp index cb0e6576e..665b7dd73 100644 --- a/tests/auto/client/mockcompositor.cpp +++ b/tests/auto/client/mockcompositor.cpp @@ -238,7 +238,7 @@ void Compositor::dispatchEvents(int timeout) static void compositor_create_surface(wl_client *client, wl_resource *compositorResource, uint32_t id) { Compositor *compositor = static_cast(compositorResource->data); - compositor->addSurface(new Surface(client, id, compositor)); + compositor->addSurface(new Surface(client, id, wl_resource_get_version(compositorResource), compositor)); } static void compositor_create_region(wl_client *client, wl_resource *compositorResource, uint32_t id) diff --git a/tests/auto/client/mockinput.cpp b/tests/auto/client/mockinput.cpp index fbe44de41..754aa4590 100644 --- a/tests/auto/client/mockinput.cpp +++ b/tests/auto/client/mockinput.cpp @@ -101,7 +101,7 @@ void Compositor::sendKeyRelease(void *data, const QList ¶meters) } Seat::Seat(Compositor *compositor, struct ::wl_display *display) - : wl_seat(display) + : wl_seat(display, 2) , m_compositor(compositor) , m_keyboard(new Keyboard(compositor)) , m_pointer(new Pointer(compositor)) @@ -119,12 +119,12 @@ void Seat::seat_bind_resource(Resource *resource) void Seat::seat_get_keyboard(Resource *resource, uint32_t id) { - m_keyboard->add(resource->client(), id); + m_keyboard->add(resource->client(), id, resource->version()); } void Seat::seat_get_pointer(Resource *resource, uint32_t id) { - m_pointer->add(resource->client(), id); + m_pointer->add(resource->client(), id, resource->version()); } Keyboard::Keyboard(Compositor *compositor) @@ -240,7 +240,7 @@ DataDevice::~DataDevice() } DataDeviceManager::DataDeviceManager(Compositor *compositor, wl_display *display) - : wl_data_device_manager(display) + : wl_data_device_manager(display, 1) , m_compositor(compositor) { @@ -255,7 +255,7 @@ void DataDeviceManager::data_device_manager_get_data_device(Resource *resource, { if (!m_data_device) m_data_device.reset(new DataDevice(m_compositor)); - m_data_device->add(resource->client(), id); + m_data_device->add(resource->client(), id, 1); } } diff --git a/tests/auto/client/mocksurface.cpp b/tests/auto/client/mocksurface.cpp index 2e4c2bc73..330213bde 100644 --- a/tests/auto/client/mocksurface.cpp +++ b/tests/auto/client/mocksurface.cpp @@ -44,8 +44,8 @@ namespace Impl { -Surface::Surface(wl_client *client, uint32_t id, Compositor *compositor) - : QtWaylandServer::wl_surface(client, id) +Surface::Surface(wl_client *client, uint32_t id, int v, Compositor *compositor) + : QtWaylandServer::wl_surface(client, id, v) , m_buffer(Q_NULLPTR) , m_compositor(compositor) , m_mockSurface(new MockSurface(this)) diff --git a/tests/auto/client/mocksurface.h b/tests/auto/client/mocksurface.h index f2a2f4eb3..33ced4385 100644 --- a/tests/auto/client/mocksurface.h +++ b/tests/auto/client/mocksurface.h @@ -50,7 +50,7 @@ namespace Impl { class Surface : public QtWaylandServer::wl_surface { public: - Surface(wl_client *client, uint32_t id, Compositor *compositor); + Surface(wl_client *client, uint32_t id, int v, Compositor *compositor); ~Surface(); Compositor *compositor() const { return m_compositor; } -- cgit v1.2.3