diff --git a/tests/auto/wayland/mockcompositor.cpp b/tests/auto/wayland/mockcompositor.cpp index 119adc0544a..6c7c66fa786 100644 --- a/tests/auto/wayland/mockcompositor.cpp +++ b/tests/auto/wayland/mockcompositor.cpp @@ -244,11 +244,9 @@ void Compositor::bindCompositor(wl_client *client, void *compositorData, uint32_ wl_client_add_object(client, &wl_compositor_interface, &compositorInterface, id, compositorData); } -static void unregisterResourceCallback(wl_listener *listener, - wl_resource *resource, - uint32_t time) +static void unregisterResourceCallback(wl_listener *listener, void *data) { - Q_UNUSED(time); + struct wl_resource *resource = reinterpret_cast(data); wl_list_remove(&resource->link); delete listener; } @@ -258,9 +256,9 @@ void registerResource(wl_list *list, wl_resource *resource) wl_list_insert(list, &resource->link); wl_listener *listener = new wl_listener; - listener->func = unregisterResourceCallback; + listener->notify = unregisterResourceCallback; - wl_list_insert(&resource->destroy_listener_list, &listener->link); + wl_signal_add(&resource->destroy_signal, listener); } QVector Compositor::surfaces() const @@ -268,6 +266,11 @@ QVector Compositor::surfaces() const return m_surfaces; } +uint32_t Compositor::nextSerial() +{ + return wl_display_next_serial(m_display); +} + void Compositor::addSurface(Surface *surface) { m_surfaces << surface; diff --git a/tests/auto/wayland/mockcompositor.h b/tests/auto/wayland/mockcompositor.h index 2d1e4183661..c47f5f2d191 100644 --- a/tests/auto/wayland/mockcompositor.h +++ b/tests/auto/wayland/mockcompositor.h @@ -69,6 +69,7 @@ public: int fileDescriptor() const { return m_fd; } void dispatchEvents(int timeout = 0); + uint32_t nextSerial(); uint32_t time() { return ++m_time; } static void setOutputGeometry(void *compositor, const QList ¶meters); diff --git a/tests/auto/wayland/mockinput.cpp b/tests/auto/wayland/mockinput.cpp index b5c90d7ed7e..4138e8f3808 100644 --- a/tests/auto/wayland/mockinput.cpp +++ b/tests/auto/wayland/mockinput.cpp @@ -95,7 +95,7 @@ static wl_surface *resolveSurface(const QVariant &v) void Compositor::setKeyboardFocus(void *data, const QList ¶meters) { Compositor *compositor = static_cast(data); - wl_input_device_set_keyboard_focus(&compositor->m_input, resolveSurface(parameters.first()), compositor->time()); + wl_input_device_set_keyboard_focus(&compositor->m_input, resolveSurface(parameters.first())); } void Compositor::sendMousePress(void *data, const QList ¶meters) @@ -106,9 +106,10 @@ void Compositor::sendMousePress(void *data, const QList ¶meters) return; QPoint pos = parameters.last().toPoint(); - wl_input_device_set_pointer_focus(&compositor->m_input, surface, compositor->time(), pos.x(), pos.y()); + wl_input_device_set_pointer_focus(&compositor->m_input, surface, pos.x(), pos.y()); wl_input_device_send_motion(compositor->m_input.pointer_focus_resource, compositor->time(), pos.x(), pos.y()); - wl_input_device_send_button(compositor->m_input.pointer_focus_resource, compositor->time(), 0x110, 1); + wl_input_device_send_button(compositor->m_input.pointer_focus_resource, + compositor->nextSerial(), compositor->time(), 0x110, 1); } void Compositor::sendMouseRelease(void *data, const QList ¶meters) @@ -118,7 +119,8 @@ void Compositor::sendMouseRelease(void *data, const QList ¶meters) if (!surface) return; - wl_input_device_send_button(compositor->m_input.pointer_focus_resource, compositor->time(), 0x110, 0); + wl_input_device_send_button(compositor->m_input.pointer_focus_resource, + compositor->nextSerial(), compositor->time(), 0x110, 0); } void Compositor::sendKeyPress(void *data, const QList ¶meters) @@ -129,7 +131,8 @@ void Compositor::sendKeyPress(void *data, const QList ¶meters) return; QPoint pos = parameters.last().toPoint(); - wl_input_device_send_key(compositor->m_input.keyboard_focus_resource, compositor->time(), parameters.last().toUInt() - 8, 1); + wl_input_device_send_key(compositor->m_input.keyboard_focus_resource, + compositor->nextSerial(), compositor->time(), parameters.last().toUInt() - 8, 1); } void Compositor::sendKeyRelease(void *data, const QList ¶meters) @@ -139,7 +142,8 @@ void Compositor::sendKeyRelease(void *data, const QList ¶meters) if (!surface) return; - wl_input_device_send_key(compositor->m_input.keyboard_focus_resource, compositor->time(), parameters.last().toUInt() - 8, 0); + wl_input_device_send_key(compositor->m_input.keyboard_focus_resource, + compositor->nextSerial(), compositor->time(), parameters.last().toUInt() - 8, 0); } } diff --git a/tests/auto/wayland/mocksurface.cpp b/tests/auto/wayland/mocksurface.cpp index f149822f68e..43d63af6d3e 100644 --- a/tests/auto/wayland/mocksurface.cpp +++ b/tests/auto/wayland/mocksurface.cpp @@ -53,8 +53,7 @@ void destroy_surface(wl_resource *resource) static void surface_destroy(wl_client *, wl_resource *surfaceResource) { - Surface *surface = static_cast(surfaceResource->data); - wl_resource_destroy(surfaceResource, surface->compositor()->time()); + wl_resource_destroy(surfaceResource); } void surface_attach(wl_client *client, wl_resource *surfaceResource, @@ -99,7 +98,7 @@ void surface_damage(wl_client *client, wl_resource *surfaceResource, wl_resource *frameCallback; wl_list_for_each(frameCallback, &surface->m_frameCallbackList, link) { wl_callback_send_done(frameCallback, surface->m_compositor->time()); - wl_resource_destroy(frameCallback, surface->m_compositor->time()); + wl_resource_destroy(frameCallback); } wl_list_init(&surface->m_frameCallbackList);