diff options
author | Kristian Høgsberg <krh@redhat.com> | 2008-11-02 10:12:29 -0500 |
---|---|---|
committer | Kristian Høgsberg <krh@redhat.com> | 2008-11-06 10:51:59 -0500 |
commit | f9bc795a7d72c0877119b3564f865af579603bde (patch) | |
tree | 058dc0ef8d58e49755fbc9b6a1141af55e6b5ba2 /wayland-client.c | |
parent | 362a34ed898d62558c8cd0afc8a1a93f3fd2aa4c (diff) |
Add crude input device support.
Just pointer motion and button clicks for now, broadcast to all clients.
Diffstat (limited to 'wayland-client.c')
-rw-r--r-- | wayland-client.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/wayland-client.c b/wayland-client.c index e2b3b83..a12e36b 100644 --- a/wayland-client.c +++ b/wayland-client.c @@ -96,16 +96,14 @@ wl_display_get_fd(struct wl_display *display) } static void -handle_event(struct wl_connection *connection) +handle_event(struct wl_connection *connection, uint32_t opcode, uint32_t size) { - uint32_t p[2], opcode, size; + uint32_t p[4]; - wl_connection_copy(connection, p, sizeof p); - opcode = p[1] & 0xffff; - size = p[1] >> 16; - printf("signal from object %d, opcode %d, size %d\n", - p[0], opcode, size); - wl_connection_consume(connection, sizeof p); + wl_connection_copy(connection, p, size); + printf("signal from object %d, opcode %d, size %d, args: %d, %d\n", + p[0], opcode, size, p[2], p[3]); + wl_connection_consume(connection, size); } void @@ -125,7 +123,8 @@ wl_display_iterate(struct wl_display *display, uint32_t mask) if (len < size) break; - handle_event(display->connection); + handle_event(display->connection, opcode, size); + len -= size; } if (len < 0) { |