keyrouter: add APIs for setting focus/top view 40/207140/1
authorSung-Jin Park <sj76.park@samsung.com>
Mon, 22 Apr 2019 10:40:36 +0000 (19:40 +0900)
committerSung-Jin Park <sj76.park@samsung.com>
Thu, 30 May 2019 08:32:51 +0000 (17:32 +0900)
Change-Id: I06ed6b0f028fc1bf48d4c510d785f61911d5ace8
Signed-off-by: Sung-Jin Park <sj76.park@samsung.com>
src/lib/keyrouter/pepper-keyrouter.c
src/lib/keyrouter/pepper-keyrouter.h

index 62bb8ae79db4c99336c2f5b75796d5bb0b43a76f..664f575619d95c4c5c0f4807c769e2b199423ace 100644 (file)
@@ -41,6 +41,9 @@ struct pepper_keyrouter {
        pepper_list_t resources;
 
        keyrouter_t *keyrouter;
+
+       pepper_view_t *focus_view;
+       pepper_view_t *top_view;
 };
 
 struct resources_data {
@@ -73,6 +76,27 @@ pepper_keyrouter_set_keyboard(pepper_keyrouter_t * pepper_keyrouter, pepper_keyb
        pepper_keyrouter->keyboard = keyboard;
 }
 
+PEPPER_API void
+pepper_keyrouter_set_focus_view(pepper_keyrouter_t *pk, pepper_view_t *focus_view)
+{
+       PEPPER_CHECK(pk, return, "pepper keyrouter is invalid.\n");
+       PEPPER_CHECK(pk->keyboard, return, "No keyboard is available for pepper keyrouter.\n");
+       PEPPER_CHECK(focus_view, return, "Given focus_view is invalid.\n");
+
+       pk->focus_view = focus_view;
+       PEPPER_TRACE("[%s] focus_view has been set. (focus=0x%p)\n", __FUNCTION__, focus_view);
+}
+
+PEPPER_API void
+pepper_keyrouter_set_top_view(pepper_keyrouter_t *pk, pepper_view_t *top_view)
+{
+       PEPPER_CHECK(pk, return, "pepper keyrouter is invalid.\n");
+       PEPPER_CHECK(top_view, return, "Given top_view is invalid.\n");
+
+       pk->top_view = top_view;
+       PEPPER_TRACE("[%s] top_view has been set. (top=0x%p)\n", __FUNCTION__, top_view);
+}
+
 static void
 _pepper_keyrouter_key_send(pepper_keyrouter_t *pepper_keyrouter,
                               pepper_seat_t *seat, struct wl_client *client,
index 83ec15a2b59ca3d81be9f8fa997b059a3eaa3c9c..b03771333f6dcd39cbaa4b37d761dc944b1ab2a3 100644 (file)
@@ -30,5 +30,7 @@ PEPPER_API void pepper_keyrouter_destroy(pepper_keyrouter_t *pepper_keyrouter);
 
 PEPPER_API void pepper_keyrouter_set_seat(pepper_keyrouter_t *pepper_keyrouter, pepper_seat_t *seat);
 PEPPER_API void pepper_keyrouter_set_keyboard(pepper_keyrouter_t * pepper_keyrouter, pepper_keyboard_t *keyboard);
+PEPPER_API void pepper_keyrouter_set_focus_view(pepper_keyrouter_t *pepper_keyrouter, pepper_view_t *focus_view);
+PEPPER_API void pepper_keyrouter_set_top_view(pepper_keyrouter_t *pepper_keyrouter, pepper_view_t *top_view);
 PEPPER_API void pepper_keyrouter_key_process(pepper_keyrouter_t *pepper_keyrouter, unsigned int key, unsigned int state, unsigned int time);
 PEPPER_API void pepper_keyrouter_event_handler(pepper_event_listener_t *listener, pepper_object_t *object, uint32_t id, void *info, void *data);