e_keyrouter_list: rename the file name 40/321740/1
authorSooChan Lim <sc1.lim@samsung.com>
Thu, 27 Mar 2025 00:26:34 +0000 (09:26 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Thu, 27 Mar 2025 10:03:35 +0000 (19:03 +0900)
rename e_keyrouter_list.c to e_keyrouter_keygrab.c

Change-Id: I9f8291c02eef2b6c895d7aba67a0083d7c74a3f5

src/bin/Makefile.mk
src/bin/inputmgr/e_keyrouter_keygrab.c [new file with mode: 0644]
src/bin/inputmgr/e_keyrouter_list.c [deleted file]

index 43d62853ce336928324819b18cdb4e259ab49bd1..b0669915249b09de6e7d99997a69ac74db488c63 100644 (file)
@@ -257,7 +257,7 @@ src/bin/inputmgr/e_devicemgr_block.c \
 src/bin/inputmgr/e_devicemgr_input.c \
 src/bin/inputmgr/e_devicemgr_inputgen.c \
 src/bin/inputmgr/e_keyrouter_event.c \
-src/bin/inputmgr/e_keyrouter_list.c \
+src/bin/inputmgr/e_keyrouter_keygrab.c \
 src/bin/inputmgr/e_keyrouter_conf.c \
 src/bin/inputmgr/e_keyrouter.c \
 src/bin/inputmgr/e_keyrouter_hardkeys.c \
diff --git a/src/bin/inputmgr/e_keyrouter_keygrab.c b/src/bin/inputmgr/e_keyrouter_keygrab.c
new file mode 100644 (file)
index 0000000..4453508
--- /dev/null
@@ -0,0 +1,316 @@
+#include "e_keyrouter_keygrab_intern.h"
+#include "e_keyrouter_hardkeys_intern.h"
+#include "e_input_thread_client_intern.h"
+#include "e_input_backend_intern.h"
+#include "e_keyrouter_wl_intern.h"
+
+#include <tizen-extension-server-protocol.h>
+
+static uint32_t _modes[] = {TIZEN_KEYROUTER_MODE_NONE,
+                            TIZEN_KEYROUTER_MODE_EXCLUSIVE,
+                            TIZEN_KEYROUTER_MODE_OVERRIDABLE_EXCLUSIVE,
+                            TIZEN_KEYROUTER_MODE_TOPMOST,
+                            TIZEN_KEYROUTER_MODE_SHARED,
+                            TIZEN_KEYROUTER_MODE_PRESSED,
+                            TIZEN_KEYROUTER_MODE_PICTURE_OFF};
+
+static int _e_keyrouter_find_duplicated_grabbed_key(struct wl_resource *surface, struct wl_client *wc, uint32_t key, uint32_t mode);
+
+/* Function for checking whether the key has been grabbed already by the same wl_surface or not */
+static int
+_e_keyrouter_find_duplicated_grabbed_key(struct wl_resource *surface, struct wl_client *wc, uint32_t key, uint32_t mode)
+{
+   if (mode == TIZEN_KEYROUTER_MODE_EXCLUSIVE)
+     return TIZEN_KEYROUTER_ERROR_NONE;
+
+   g_rec_mutex_lock(&krt->grab_key_mutex);
+
+   Eina_Bool is_grabbed;
+   is_grabbed = surface ? e_keyrouter_hardkeys_is_key_grabbed_by_surface(krt->HardKeys, key, surface, mode)
+                        : e_keyrouter_hardkeys_is_key_grabbed_by_client(krt->HardKeys, key, wc, mode);
+
+   if (!is_grabbed)
+     {
+        g_rec_mutex_unlock(&krt->grab_key_mutex);
+        return TIZEN_KEYROUTER_ERROR_NONE;
+     }
+
+   if (surface)
+     DBG("The key(%d) is already grabbed same mode(%s) on the same wl_surface %p",
+           key, e_keyrouter_util_mode_to_string(mode), surface);
+   else
+     DBG("The key(%d) is already grabbed same mode(%s) on the same wl_client %p",
+           key, e_keyrouter_util_mode_to_string(mode), wc);
+
+   g_rec_mutex_unlock(&krt->grab_key_mutex);
+
+   return TIZEN_KEYROUTER_ERROR_GRABBED_ALREADY;
+}
+
+/* Function for prepending a new key grab information in the keyrouting list */
+EINTERN int
+e_keyrouter_keygrab_prepend_to_keylist(struct wl_resource *surface, struct wl_client *wc, uint32_t key, uint32_t mode, Eina_Bool focused)
+{
+   int res = TIZEN_KEYROUTER_ERROR_NONE;
+
+   res = _e_keyrouter_find_duplicated_grabbed_key(surface, wc, key, mode);
+   if (TIZEN_KEYROUTER_ERROR_NONE != res) return res;
+
+   E_Keyrouter_Key_List_NodePtr new_keyptr = E_NEW(E_Keyrouter_Key_List_Node, 1);
+
+   if (!new_keyptr)
+     {
+        ERR("Failled to allocate memory for new_keyptr");
+        return TIZEN_KEYROUTER_ERROR_NO_SYSTEM_RESOURCES;
+     }
+
+   new_keyptr->surface = surface;
+   new_keyptr->wc = wc;
+   new_keyptr->focused = focused;
+   new_keyptr->status = E_KRT_CSTAT_ALIVE;
+
+   g_rec_mutex_lock(&krt->grab_key_mutex);
+
+   if (!e_keyrouter_hardkeys_prepend(krt->HardKeys, new_keyptr, key, mode))
+     {
+         E_FREE(new_keyptr);
+         g_rec_mutex_unlock(&krt->grab_key_mutex);
+         return TIZEN_KEYROUTER_ERROR_INVALID_MODE;
+     }
+
+   g_rec_mutex_unlock(&krt->grab_key_mutex);
+
+   if (TIZEN_KEYROUTER_MODE_PRESSED != mode)
+     {
+        if (surface)
+          {
+             e_keyrouter_wl_add_surface_destroy_listener(surface);
+             /* TODO: if failed add surface_destroy_listener, remove keygrabs */
+          }
+        else if (wc)
+          {
+             e_keyrouter_wl_add_client_destroy_listener(wc);
+             /* TODO: if failed add client_destroy_listener, remove keygrabs */
+          }
+     }
+
+   return TIZEN_KEYROUTER_ERROR_NONE;
+}
+
+EINTERN void
+e_keyrouter_keygrab_remove_surface_from_list(struct wl_resource *surface)
+{
+   uint32_t key, mode;
+
+   EINA_SAFETY_ON_NULL_RETURN(surface);
+
+   INF("[%s] surface(%p)", __func__, surface);
+
+   g_rec_mutex_lock(&krt->grab_key_mutex);
+
+   for (key = 0; key <= krt->max_tizen_hwkeys; key++)
+     {
+        if (!e_keyrouter_hardkeys_keycode_available(krt->HardKeys, key))
+          continue;
+
+        for (mode = EXCLUSIVE; mode <= PICTURE_OFF; ++mode)
+          e_keyrouter_hardkeys_remove_keynode_with_surface(krt->HardKeys, key, _modes[mode], surface);
+     }
+
+   g_rec_mutex_unlock(&krt->grab_key_mutex);
+}
+
+EINTERN void
+e_keyrouter_keygrab_remove_client_from_list(struct wl_client *client)
+{
+   uint32_t key, mode;
+
+   EINA_SAFETY_ON_NULL_RETURN(client);
+
+   INF("[%s] client(%p)", __func__, client);
+
+   g_rec_mutex_lock(&krt->grab_key_mutex);
+
+   for (key = 0; key <= krt->max_tizen_hwkeys; key++)
+     {
+        if (!e_keyrouter_hardkeys_keycode_available(krt->HardKeys, key))
+          continue;
+
+        for (mode = EXCLUSIVE; mode <= PICTURE_OFF; ++mode)
+          e_keyrouter_hardkeys_remove_keynode_with_client(krt->HardKeys, key, _modes[mode], client);
+     }
+
+   g_rec_mutex_unlock(&krt->grab_key_mutex);
+}
+
+EINTERN uint32_t
+e_keyrouter_keygrab_find_mode_with_surface(struct wl_resource *surface, uint32_t key)
+{
+   uint32_t mode;
+
+   g_rec_mutex_lock(&krt->grab_key_mutex);
+
+   for (mode = EXCLUSIVE; mode <= SHARED; ++mode)
+     if (e_keyrouter_hardkeys_is_key_grabbed_by_surface(krt->HardKeys, key, surface, _modes[mode]))
+       break;
+
+   g_rec_mutex_unlock(&krt->grab_key_mutex);
+
+   if (mode > SHARED)
+     mode = NONE;
+
+   if (mode != NONE)
+     DBG("Find %d key grabbed by (wl_surface: %p) in %s mode",
+           key, surface, e_keyrouter_util_mode_to_string(_modes[mode]));
+   else
+     DBG("%d key is not grabbed by (wl_surface: %p)", key, surface);
+
+   return _modes[mode];
+}
+
+EINTERN uint32_t
+e_keyrouter_keygrab_find_mode_with_client(struct wl_client *client, uint32_t key)
+{
+   uint32_t mode;
+
+   g_rec_mutex_lock(&krt->grab_key_mutex);
+
+   for (mode = EXCLUSIVE; mode <= SHARED; ++mode)
+     if (e_keyrouter_hardkeys_is_key_grabbed_by_client(krt->HardKeys, key, client, _modes[mode]))
+       break;
+
+   g_rec_mutex_unlock(&krt->grab_key_mutex);
+
+   if (mode > SHARED)
+     mode = NONE;
+
+   if (mode != NONE)
+     DBG("Find %d key grabbed by (wl_client: %p) in %s mode",
+           key, client, e_keyrouter_util_mode_to_string(_modes[mode]));
+   else
+     DBG("%d key is not grabbed by (wl_client: %p)", key, client);
+
+   return _modes[mode];
+}
+
+EINTERN int
+e_keyrouter_keygrab_set(struct wl_client *client, struct wl_resource *surface, int key, int mode)
+{
+   Eina_List *excl_ptr_list;
+   int res;
+
+#ifdef HAVE_CYNARA
+   if (EINA_FALSE == e_keyrouter_wl_util_do_privilege_check(client, mode, key))
+     {
+        INF("No permission for %d grab mode ! (key=%d)", mode, key);
+        return TIZEN_KEYROUTER_ERROR_NO_PERMISSION;
+     }
+#endif
+
+   if (!surface)
+     {
+        /* Regarding topmost mode, a client must request to grab a key with a valid surface. */
+        if (mode == TIZEN_KEYROUTER_MODE_TOPMOST)
+          {
+             WRN("Invalid surface for %d grab mode ! (key=%d)", mode, key);
+
+             return TIZEN_KEYROUTER_ERROR_INVALID_SURFACE;
+          }
+     }
+
+   /* Check the given key range */
+   if (krt->max_tizen_hwkeys < key)
+     {
+        WRN("Invalid range of key ! (keycode:%d) maximum value(%d)", key, krt->max_tizen_hwkeys);
+        return TIZEN_KEYROUTER_ERROR_INVALID_KEY;
+     }
+
+   /* Check whether the key can be grabbed or not !
+    * Only key listed in Tizen key layout file can be grabbed. */
+   if (!e_keyrouter_hardkeys_keycode_available(krt->HardKeys, key))
+     {
+        WRN("Invalid key ! Disabled to set keygrab ! (keycode:%d)", key);
+        return TIZEN_KEYROUTER_ERROR_INVALID_KEY;
+     }
+
+   /* Check whether the request key can be grabbed or not */
+   if (mode == TIZEN_KEYROUTER_MODE_EXCLUSIVE)
+     {
+        g_rec_mutex_lock(&krt->grab_key_mutex);
+        excl_ptr_list = e_keyrouter_hardkeys_list_get(krt->HardKeys, key, TIZEN_KEYROUTER_MODE_EXCLUSIVE);
+        if (excl_ptr_list != NULL)
+          {
+             g_rec_mutex_unlock(&krt->grab_key_mutex);
+             return TIZEN_KEYROUTER_ERROR_GRABBED_ALREADY;
+          }
+        g_rec_mutex_unlock(&krt->grab_key_mutex);
+     }
+
+   res = e_keyrouter_keygrab_prepend_to_keylist(surface,
+                                   surface ? NULL : client,
+                                   key,
+                                   mode,
+                                   EINA_FALSE);
+   EINA_SAFETY_ON_FALSE_RETURN_VAL(res == TIZEN_KEYROUTER_ERROR_NONE, res);
+
+
+   return res;
+}
+
+int
+e_keyrouter_keygrab_unset(struct wl_client *client, struct wl_resource *surface, int key)
+{
+   /* Check the given key range */
+   if (krt->max_tizen_hwkeys < key)
+     {
+        WRN("Invalid range of key ! (keycode:%d) maximum value(%d)", key, krt->max_tizen_hwkeys);
+        return TIZEN_KEYROUTER_ERROR_INVALID_KEY;
+     }
+
+   g_rec_mutex_lock(&krt->grab_key_mutex);
+
+   /* Check whether the key can be unset or not !
+    * Only key listed in Tizen key layout file can be unset. */
+   if (!e_keyrouter_hardkeys_keycode_available(krt->HardKeys, key))
+     {
+        WRN("Invalid key ! Disabled to unset keygrab! (keycode:%d)", key);
+        g_rec_mutex_unlock(&krt->grab_key_mutex);
+
+        return TIZEN_KEYROUTER_ERROR_INVALID_KEY;
+     }
+
+   /* Ungrab top position grabs first. This grab mode do not need privilege */
+   if (!surface)
+     e_keyrouter_hardkeys_remove_keynode_with_client(krt->HardKeys, key, TIZEN_KEYROUTER_MODE_TOPMOST, client);
+   else
+     e_keyrouter_hardkeys_remove_keynode_with_surface(krt->HardKeys, key, TIZEN_KEYROUTER_MODE_TOPMOST, surface);
+
+   g_rec_mutex_unlock(&krt->grab_key_mutex);
+
+#ifdef HAVE_CYNARA
+   if (!e_keyrouter_wl_util_do_privilege_check(client, TIZEN_KEYROUTER_MODE_NONE, key))
+     goto finish;
+#endif
+
+   g_rec_mutex_lock(&krt->grab_key_mutex);
+
+   for (uint32_t mode = EXCLUSIVE; mode <= PRESSED; ++mode)
+     {
+        if (mode == TOPMOST) continue;
+
+        if (!surface)
+          e_keyrouter_hardkeys_remove_keynode_with_client(krt->HardKeys, key, _modes[mode], client);
+        else
+          e_keyrouter_hardkeys_remove_keynode_with_surface(krt->HardKeys, key, _modes[mode], surface);
+     }
+
+   g_rec_mutex_unlock(&krt->grab_key_mutex);
+
+finish:
+   if (!surface)
+     e_keyrouter_keycancel_send_with_client(client, key);
+   else
+     e_keyrouter_keycancel_send_with_surface(surface, key);
+
+   return TIZEN_KEYROUTER_ERROR_NONE;
+}
diff --git a/src/bin/inputmgr/e_keyrouter_list.c b/src/bin/inputmgr/e_keyrouter_list.c
deleted file mode 100644 (file)
index 4453508..0000000
+++ /dev/null
@@ -1,316 +0,0 @@
-#include "e_keyrouter_keygrab_intern.h"
-#include "e_keyrouter_hardkeys_intern.h"
-#include "e_input_thread_client_intern.h"
-#include "e_input_backend_intern.h"
-#include "e_keyrouter_wl_intern.h"
-
-#include <tizen-extension-server-protocol.h>
-
-static uint32_t _modes[] = {TIZEN_KEYROUTER_MODE_NONE,
-                            TIZEN_KEYROUTER_MODE_EXCLUSIVE,
-                            TIZEN_KEYROUTER_MODE_OVERRIDABLE_EXCLUSIVE,
-                            TIZEN_KEYROUTER_MODE_TOPMOST,
-                            TIZEN_KEYROUTER_MODE_SHARED,
-                            TIZEN_KEYROUTER_MODE_PRESSED,
-                            TIZEN_KEYROUTER_MODE_PICTURE_OFF};
-
-static int _e_keyrouter_find_duplicated_grabbed_key(struct wl_resource *surface, struct wl_client *wc, uint32_t key, uint32_t mode);
-
-/* Function for checking whether the key has been grabbed already by the same wl_surface or not */
-static int
-_e_keyrouter_find_duplicated_grabbed_key(struct wl_resource *surface, struct wl_client *wc, uint32_t key, uint32_t mode)
-{
-   if (mode == TIZEN_KEYROUTER_MODE_EXCLUSIVE)
-     return TIZEN_KEYROUTER_ERROR_NONE;
-
-   g_rec_mutex_lock(&krt->grab_key_mutex);
-
-   Eina_Bool is_grabbed;
-   is_grabbed = surface ? e_keyrouter_hardkeys_is_key_grabbed_by_surface(krt->HardKeys, key, surface, mode)
-                        : e_keyrouter_hardkeys_is_key_grabbed_by_client(krt->HardKeys, key, wc, mode);
-
-   if (!is_grabbed)
-     {
-        g_rec_mutex_unlock(&krt->grab_key_mutex);
-        return TIZEN_KEYROUTER_ERROR_NONE;
-     }
-
-   if (surface)
-     DBG("The key(%d) is already grabbed same mode(%s) on the same wl_surface %p",
-           key, e_keyrouter_util_mode_to_string(mode), surface);
-   else
-     DBG("The key(%d) is already grabbed same mode(%s) on the same wl_client %p",
-           key, e_keyrouter_util_mode_to_string(mode), wc);
-
-   g_rec_mutex_unlock(&krt->grab_key_mutex);
-
-   return TIZEN_KEYROUTER_ERROR_GRABBED_ALREADY;
-}
-
-/* Function for prepending a new key grab information in the keyrouting list */
-EINTERN int
-e_keyrouter_keygrab_prepend_to_keylist(struct wl_resource *surface, struct wl_client *wc, uint32_t key, uint32_t mode, Eina_Bool focused)
-{
-   int res = TIZEN_KEYROUTER_ERROR_NONE;
-
-   res = _e_keyrouter_find_duplicated_grabbed_key(surface, wc, key, mode);
-   if (TIZEN_KEYROUTER_ERROR_NONE != res) return res;
-
-   E_Keyrouter_Key_List_NodePtr new_keyptr = E_NEW(E_Keyrouter_Key_List_Node, 1);
-
-   if (!new_keyptr)
-     {
-        ERR("Failled to allocate memory for new_keyptr");
-        return TIZEN_KEYROUTER_ERROR_NO_SYSTEM_RESOURCES;
-     }
-
-   new_keyptr->surface = surface;
-   new_keyptr->wc = wc;
-   new_keyptr->focused = focused;
-   new_keyptr->status = E_KRT_CSTAT_ALIVE;
-
-   g_rec_mutex_lock(&krt->grab_key_mutex);
-
-   if (!e_keyrouter_hardkeys_prepend(krt->HardKeys, new_keyptr, key, mode))
-     {
-         E_FREE(new_keyptr);
-         g_rec_mutex_unlock(&krt->grab_key_mutex);
-         return TIZEN_KEYROUTER_ERROR_INVALID_MODE;
-     }
-
-   g_rec_mutex_unlock(&krt->grab_key_mutex);
-
-   if (TIZEN_KEYROUTER_MODE_PRESSED != mode)
-     {
-        if (surface)
-          {
-             e_keyrouter_wl_add_surface_destroy_listener(surface);
-             /* TODO: if failed add surface_destroy_listener, remove keygrabs */
-          }
-        else if (wc)
-          {
-             e_keyrouter_wl_add_client_destroy_listener(wc);
-             /* TODO: if failed add client_destroy_listener, remove keygrabs */
-          }
-     }
-
-   return TIZEN_KEYROUTER_ERROR_NONE;
-}
-
-EINTERN void
-e_keyrouter_keygrab_remove_surface_from_list(struct wl_resource *surface)
-{
-   uint32_t key, mode;
-
-   EINA_SAFETY_ON_NULL_RETURN(surface);
-
-   INF("[%s] surface(%p)", __func__, surface);
-
-   g_rec_mutex_lock(&krt->grab_key_mutex);
-
-   for (key = 0; key <= krt->max_tizen_hwkeys; key++)
-     {
-        if (!e_keyrouter_hardkeys_keycode_available(krt->HardKeys, key))
-          continue;
-
-        for (mode = EXCLUSIVE; mode <= PICTURE_OFF; ++mode)
-          e_keyrouter_hardkeys_remove_keynode_with_surface(krt->HardKeys, key, _modes[mode], surface);
-     }
-
-   g_rec_mutex_unlock(&krt->grab_key_mutex);
-}
-
-EINTERN void
-e_keyrouter_keygrab_remove_client_from_list(struct wl_client *client)
-{
-   uint32_t key, mode;
-
-   EINA_SAFETY_ON_NULL_RETURN(client);
-
-   INF("[%s] client(%p)", __func__, client);
-
-   g_rec_mutex_lock(&krt->grab_key_mutex);
-
-   for (key = 0; key <= krt->max_tizen_hwkeys; key++)
-     {
-        if (!e_keyrouter_hardkeys_keycode_available(krt->HardKeys, key))
-          continue;
-
-        for (mode = EXCLUSIVE; mode <= PICTURE_OFF; ++mode)
-          e_keyrouter_hardkeys_remove_keynode_with_client(krt->HardKeys, key, _modes[mode], client);
-     }
-
-   g_rec_mutex_unlock(&krt->grab_key_mutex);
-}
-
-EINTERN uint32_t
-e_keyrouter_keygrab_find_mode_with_surface(struct wl_resource *surface, uint32_t key)
-{
-   uint32_t mode;
-
-   g_rec_mutex_lock(&krt->grab_key_mutex);
-
-   for (mode = EXCLUSIVE; mode <= SHARED; ++mode)
-     if (e_keyrouter_hardkeys_is_key_grabbed_by_surface(krt->HardKeys, key, surface, _modes[mode]))
-       break;
-
-   g_rec_mutex_unlock(&krt->grab_key_mutex);
-
-   if (mode > SHARED)
-     mode = NONE;
-
-   if (mode != NONE)
-     DBG("Find %d key grabbed by (wl_surface: %p) in %s mode",
-           key, surface, e_keyrouter_util_mode_to_string(_modes[mode]));
-   else
-     DBG("%d key is not grabbed by (wl_surface: %p)", key, surface);
-
-   return _modes[mode];
-}
-
-EINTERN uint32_t
-e_keyrouter_keygrab_find_mode_with_client(struct wl_client *client, uint32_t key)
-{
-   uint32_t mode;
-
-   g_rec_mutex_lock(&krt->grab_key_mutex);
-
-   for (mode = EXCLUSIVE; mode <= SHARED; ++mode)
-     if (e_keyrouter_hardkeys_is_key_grabbed_by_client(krt->HardKeys, key, client, _modes[mode]))
-       break;
-
-   g_rec_mutex_unlock(&krt->grab_key_mutex);
-
-   if (mode > SHARED)
-     mode = NONE;
-
-   if (mode != NONE)
-     DBG("Find %d key grabbed by (wl_client: %p) in %s mode",
-           key, client, e_keyrouter_util_mode_to_string(_modes[mode]));
-   else
-     DBG("%d key is not grabbed by (wl_client: %p)", key, client);
-
-   return _modes[mode];
-}
-
-EINTERN int
-e_keyrouter_keygrab_set(struct wl_client *client, struct wl_resource *surface, int key, int mode)
-{
-   Eina_List *excl_ptr_list;
-   int res;
-
-#ifdef HAVE_CYNARA
-   if (EINA_FALSE == e_keyrouter_wl_util_do_privilege_check(client, mode, key))
-     {
-        INF("No permission for %d grab mode ! (key=%d)", mode, key);
-        return TIZEN_KEYROUTER_ERROR_NO_PERMISSION;
-     }
-#endif
-
-   if (!surface)
-     {
-        /* Regarding topmost mode, a client must request to grab a key with a valid surface. */
-        if (mode == TIZEN_KEYROUTER_MODE_TOPMOST)
-          {
-             WRN("Invalid surface for %d grab mode ! (key=%d)", mode, key);
-
-             return TIZEN_KEYROUTER_ERROR_INVALID_SURFACE;
-          }
-     }
-
-   /* Check the given key range */
-   if (krt->max_tizen_hwkeys < key)
-     {
-        WRN("Invalid range of key ! (keycode:%d) maximum value(%d)", key, krt->max_tizen_hwkeys);
-        return TIZEN_KEYROUTER_ERROR_INVALID_KEY;
-     }
-
-   /* Check whether the key can be grabbed or not !
-    * Only key listed in Tizen key layout file can be grabbed. */
-   if (!e_keyrouter_hardkeys_keycode_available(krt->HardKeys, key))
-     {
-        WRN("Invalid key ! Disabled to set keygrab ! (keycode:%d)", key);
-        return TIZEN_KEYROUTER_ERROR_INVALID_KEY;
-     }
-
-   /* Check whether the request key can be grabbed or not */
-   if (mode == TIZEN_KEYROUTER_MODE_EXCLUSIVE)
-     {
-        g_rec_mutex_lock(&krt->grab_key_mutex);
-        excl_ptr_list = e_keyrouter_hardkeys_list_get(krt->HardKeys, key, TIZEN_KEYROUTER_MODE_EXCLUSIVE);
-        if (excl_ptr_list != NULL)
-          {
-             g_rec_mutex_unlock(&krt->grab_key_mutex);
-             return TIZEN_KEYROUTER_ERROR_GRABBED_ALREADY;
-          }
-        g_rec_mutex_unlock(&krt->grab_key_mutex);
-     }
-
-   res = e_keyrouter_keygrab_prepend_to_keylist(surface,
-                                   surface ? NULL : client,
-                                   key,
-                                   mode,
-                                   EINA_FALSE);
-   EINA_SAFETY_ON_FALSE_RETURN_VAL(res == TIZEN_KEYROUTER_ERROR_NONE, res);
-
-
-   return res;
-}
-
-int
-e_keyrouter_keygrab_unset(struct wl_client *client, struct wl_resource *surface, int key)
-{
-   /* Check the given key range */
-   if (krt->max_tizen_hwkeys < key)
-     {
-        WRN("Invalid range of key ! (keycode:%d) maximum value(%d)", key, krt->max_tizen_hwkeys);
-        return TIZEN_KEYROUTER_ERROR_INVALID_KEY;
-     }
-
-   g_rec_mutex_lock(&krt->grab_key_mutex);
-
-   /* Check whether the key can be unset or not !
-    * Only key listed in Tizen key layout file can be unset. */
-   if (!e_keyrouter_hardkeys_keycode_available(krt->HardKeys, key))
-     {
-        WRN("Invalid key ! Disabled to unset keygrab! (keycode:%d)", key);
-        g_rec_mutex_unlock(&krt->grab_key_mutex);
-
-        return TIZEN_KEYROUTER_ERROR_INVALID_KEY;
-     }
-
-   /* Ungrab top position grabs first. This grab mode do not need privilege */
-   if (!surface)
-     e_keyrouter_hardkeys_remove_keynode_with_client(krt->HardKeys, key, TIZEN_KEYROUTER_MODE_TOPMOST, client);
-   else
-     e_keyrouter_hardkeys_remove_keynode_with_surface(krt->HardKeys, key, TIZEN_KEYROUTER_MODE_TOPMOST, surface);
-
-   g_rec_mutex_unlock(&krt->grab_key_mutex);
-
-#ifdef HAVE_CYNARA
-   if (!e_keyrouter_wl_util_do_privilege_check(client, TIZEN_KEYROUTER_MODE_NONE, key))
-     goto finish;
-#endif
-
-   g_rec_mutex_lock(&krt->grab_key_mutex);
-
-   for (uint32_t mode = EXCLUSIVE; mode <= PRESSED; ++mode)
-     {
-        if (mode == TOPMOST) continue;
-
-        if (!surface)
-          e_keyrouter_hardkeys_remove_keynode_with_client(krt->HardKeys, key, _modes[mode], client);
-        else
-          e_keyrouter_hardkeys_remove_keynode_with_surface(krt->HardKeys, key, _modes[mode], surface);
-     }
-
-   g_rec_mutex_unlock(&krt->grab_key_mutex);
-
-finish:
-   if (!surface)
-     e_keyrouter_keycancel_send_with_client(client, key);
-   else
-     e_keyrouter_keycancel_send_with_surface(surface, key);
-
-   return TIZEN_KEYROUTER_ERROR_NONE;
-}