Sync up with the latest wayland developments.
This commit makes the qtwayland module compatible with wayland sha1 677c5180e67be18b7a0867fafb7f205b57a6e9ff. Change-Id: I5af0510034b7e4a038313b80f1f6e0b18fa48eb3 Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com> Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
This commit is contained in:
parent
e009b62037
commit
d4884fa940
@ -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<struct wl_resource *>(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<Surface *> Compositor::surfaces() const
|
||||
@ -268,6 +266,11 @@ QVector<Surface *> 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;
|
||||
|
@ -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<QVariant> ¶meters);
|
||||
|
@ -95,7 +95,7 @@ static wl_surface *resolveSurface(const QVariant &v)
|
||||
void Compositor::setKeyboardFocus(void *data, const QList<QVariant> ¶meters)
|
||||
{
|
||||
Compositor *compositor = static_cast<Compositor *>(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<QVariant> ¶meters)
|
||||
@ -106,9 +106,10 @@ void Compositor::sendMousePress(void *data, const QList<QVariant> ¶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<QVariant> ¶meters)
|
||||
@ -118,7 +119,8 @@ void Compositor::sendMouseRelease(void *data, const QList<QVariant> ¶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<QVariant> ¶meters)
|
||||
@ -129,7 +131,8 @@ void Compositor::sendKeyPress(void *data, const QList<QVariant> ¶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<QVariant> ¶meters)
|
||||
@ -139,7 +142,8 @@ void Compositor::sendKeyRelease(void *data, const QList<QVariant> ¶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);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -53,8 +53,7 @@ void destroy_surface(wl_resource *resource)
|
||||
|
||||
static void surface_destroy(wl_client *, wl_resource *surfaceResource)
|
||||
{
|
||||
Surface *surface = static_cast<Surface *>(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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user