pepper: Default keyboard grab
authorTaekyun Kim <tkq.kim@samsung.com>
Tue, 22 Sep 2015 07:28:30 +0000 (16:28 +0900)
committerTaekyun Kim <tkq.kim@samsung.com>
Tue, 22 Sep 2015 07:28:30 +0000 (16:28 +0900)
Change-Id: I6e2bf9fb6a49684445329756a876d9c438503d98

src/lib/pepper/keyboard.c

index 2560f8d1c7d00bb3093bf3b5e783e40ec0707a12..f1b32482a8db09d586e7edb2e603bbbcee7368d6 100644 (file)
@@ -11,6 +11,26 @@ static const struct wl_keyboard_interface keyboard_impl =
     keyboard_release,
 };
 
+static void
+default_keyboard_grab_key(pepper_keyboard_t *keyboard, void *data,
+                          uint32_t time, uint32_t key, uint32_t state)
+{
+    pepper_keyboard_send_key(keyboard, time, key, state);
+}
+
+
+static void
+default_keyboard_grab_cancel(pepper_keyboard_t *keyboard, void *data)
+{
+    /* Nothing to do. */
+}
+
+static const pepper_keyboard_grab_t default_keyboard_grab =
+{
+    default_keyboard_grab_key,
+    default_keyboard_grab_cancel,
+};
+
 static void
 keyboard_handle_event(pepper_object_t *object, uint32_t id, void *info)
 {
@@ -59,6 +79,7 @@ pepper_keyboard_create(pepper_seat_t *seat)
     PEPPER_CHECK(keyboard, return NULL, "pepper_object_alloc() failed.\n");
 
     pepper_input_init(&keyboard->input, seat, &keyboard->base, keyboard_handle_focus_destroy);
+    keyboard->grab = &default_keyboard_grab;
     keyboard->base.handle_event = keyboard_handle_event;
 
     wl_array_init(&keyboard->keys);
@@ -169,6 +190,5 @@ pepper_keyboard_start_grab(pepper_keyboard_t *keyboard,
 PEPPER_API void
 pepper_keyboard_end_grab(pepper_keyboard_t *keyboard)
 {
-    /* TODO: switch back to default grab. */
-    keyboard->grab = NULL;
+    keyboard->grab = &default_keyboard_grab;
 }