summaryrefslogtreecommitdiff
path: root/wayland-client.c
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@redhat.com>2008-11-02 10:12:29 -0500
committerKristian Høgsberg <krh@redhat.com>2008-11-06 10:51:59 -0500
commitf9bc795a7d72c0877119b3564f865af579603bde (patch)
tree058dc0ef8d58e49755fbc9b6a1141af55e6b5ba2 /wayland-client.c
parent362a34ed898d62558c8cd0afc8a1a93f3fd2aa4c (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.c17
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) {