commit a8a080f

Michael Forney  ·  2014-05-14 03:17:42 +0000 UTC
parent 795ea1f
{seat,keyboard,pointer}: Support protocol version 3
3 files changed,  +21, -5
+12, -2
 1@@ -158,6 +158,15 @@ void keyboard_set_focus(struct keyboard * keyboard,
 2     input_focus_set(&keyboard->focus, view);
 3 }
 4 
 5+static void release(struct wl_client * client, struct wl_resource * resource)
 6+{
 7+    wl_resource_destroy(resource);
 8+}
 9+
10+static struct wl_keyboard_interface keyboard_implementation = {
11+    .release = &release,
12+};
13+
14 static void unbind(struct wl_resource * resource)
15 {
16     struct keyboard * keyboard = wl_resource_get_user_data(resource);
17@@ -170,8 +179,9 @@ struct wl_resource * keyboard_bind(struct keyboard * keyboard,
18 {
19     struct wl_resource * client_resource;
20 
21-    client_resource = wl_resource_create(client, &wl_keyboard_interface, 1, id);
22-    wl_resource_set_implementation(client_resource, NULL, keyboard, &unbind);
23+    client_resource = wl_resource_create(client, &wl_keyboard_interface, 3, id);
24+    wl_resource_set_implementation(client_resource, &keyboard_implementation,
25+                                   keyboard, &unbind);
26     input_focus_add_resource(&keyboard->focus, client_resource);
27 
28     /* Subtract one to remove terminating NULL character. */
+8, -2
 1@@ -311,8 +311,14 @@ static void set_cursor(struct wl_client * client,
 2     }
 3 }
 4 
 5+static void release(struct wl_client * client, struct wl_resource * resource)
 6+{
 7+    wl_resource_destroy(resource);
 8+}
 9+
10 static struct wl_pointer_interface pointer_implementation = {
11-    .set_cursor = &set_cursor
12+    .set_cursor = &set_cursor,
13+    .release = &release,
14 };
15 
16 static void unbind(struct wl_resource * resource)
17@@ -327,7 +333,7 @@ struct wl_resource * pointer_bind(struct pointer * pointer,
18 {
19     struct wl_resource * client_resource;
20 
21-    client_resource = wl_resource_create(client, &wl_pointer_interface, 1, id);
22+    client_resource = wl_resource_create(client, &wl_pointer_interface, 3, id);
23     wl_resource_set_implementation(client_resource, &pointer_implementation,
24                                    pointer, &unbind);
25     input_focus_add_resource(&pointer->focus, client_resource);
+1, -1
1@@ -372,7 +372,7 @@ bool swc_seat_initialize(const char * seat_name)
2         goto error0;
3     }
4 
5-    seat.global = wl_global_create(swc.display, &wl_seat_interface, 2,
6+    seat.global = wl_global_create(swc.display, &wl_seat_interface, 3,
7                                    NULL, &bind_seat);
8 
9     if (!seat.global)