swc

Unnamed repository; edit this file 'description' to name the repository.
git clone git://git.nihaljere.xyz/swc
Log | Files | Refs | README | LICENSE

commit a8a080fbe498cea54d2b3455d1ed6dae201da0c1
parent 795ea1fe9fcbe5deba1be4431c56ffe7bb6c5128
Author: Michael Forney <mforney@mforney.org>
Date:   Tue, 13 May 2014 20:17:42 -0700

{seat,keyboard,pointer}: Support protocol version 3

Diffstat:
Mlibswc/keyboard.c | 14++++++++++++--
Mlibswc/pointer.c | 10++++++++--
Mlibswc/seat.c | 2+-
3 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/libswc/keyboard.c b/libswc/keyboard.c @@ -158,6 +158,15 @@ void keyboard_set_focus(struct keyboard * keyboard, input_focus_set(&keyboard->focus, view); } +static void release(struct wl_client * client, struct wl_resource * resource) +{ + wl_resource_destroy(resource); +} + +static struct wl_keyboard_interface keyboard_implementation = { + .release = &release, +}; + static void unbind(struct wl_resource * resource) { struct keyboard * keyboard = wl_resource_get_user_data(resource); @@ -170,8 +179,9 @@ struct wl_resource * keyboard_bind(struct keyboard * keyboard, { struct wl_resource * client_resource; - client_resource = wl_resource_create(client, &wl_keyboard_interface, 1, id); - wl_resource_set_implementation(client_resource, NULL, keyboard, &unbind); + client_resource = wl_resource_create(client, &wl_keyboard_interface, 3, id); + wl_resource_set_implementation(client_resource, &keyboard_implementation, + keyboard, &unbind); input_focus_add_resource(&keyboard->focus, client_resource); /* Subtract one to remove terminating NULL character. */ diff --git a/libswc/pointer.c b/libswc/pointer.c @@ -311,8 +311,14 @@ static void set_cursor(struct wl_client * client, } } +static void release(struct wl_client * client, struct wl_resource * resource) +{ + wl_resource_destroy(resource); +} + static struct wl_pointer_interface pointer_implementation = { - .set_cursor = &set_cursor + .set_cursor = &set_cursor, + .release = &release, }; static void unbind(struct wl_resource * resource) @@ -327,7 +333,7 @@ struct wl_resource * pointer_bind(struct pointer * pointer, { struct wl_resource * client_resource; - client_resource = wl_resource_create(client, &wl_pointer_interface, 1, id); + client_resource = wl_resource_create(client, &wl_pointer_interface, 3, id); wl_resource_set_implementation(client_resource, &pointer_implementation, pointer, &unbind); input_focus_add_resource(&pointer->focus, client_resource); diff --git a/libswc/seat.c b/libswc/seat.c @@ -372,7 +372,7 @@ bool swc_seat_initialize(const char * seat_name) goto error0; } - seat.global = wl_global_create(swc.display, &wl_seat_interface, 2, + seat.global = wl_global_create(swc.display, &wl_seat_interface, 3, NULL, &bind_seat); if (!seat.global)