e_keyrouter_keygrab: move keyrouter keygrab code 42/321742/1
authorSooChan Lim <sc1.lim@samsung.com>
Thu, 27 Mar 2025 04:18:23 +0000 (13:18 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Thu, 27 Mar 2025 10:03:35 +0000 (19:03 +0900)
move the keyrouter_keygrab code from e_keyrouter_wl to e_keyrouter_wl.

Change-Id: If44e74aea509ae0e7d33bfe5d478db54858fcaf5

src/bin/inputmgr/e_keyrouter_keygrab.c
src/bin/server/e_keyrouter_wl.c
src/bin/server/e_keyrouter_wl_intern.h

index 44535083bcf93f819052d36560e3d9ae55e53719..1c7a4a6781ee108e6fd3a28ab862e8956744130e 100644 (file)
@@ -257,6 +257,49 @@ e_keyrouter_keygrab_set(struct wl_client *client, struct wl_resource *surface, i
    return res;
 }
 
+static void
+_e_keyrouter_keygrab_keycancel_send_with_surface(struct wl_resource *surface, unsigned int key)
+{
+   struct wl_client *client = NULL;
+   E_Keyrouter_Key_List_NodePtr data;
+   Eina_List *press_ptr_list = NULL;
+   Eina_List *l;
+
+   client = wl_resource_get_client(surface);
+   EINA_SAFETY_ON_NULL_RETURN(client);
+
+   g_rec_mutex_lock(&krt->grab_key_mutex);
+   press_ptr_list = e_keyrouter_hardkeys_list_get(krt->HardKeys, key, TIZEN_KEYROUTER_MODE_PRESSED);
+   EINA_LIST_FOREACH(press_ptr_list, l, data)
+     {
+        if (surface != data->surface) continue;
+
+        e_keyrouter_wl_keycancel_send(client, key);
+     }
+   g_rec_mutex_unlock(&krt->grab_key_mutex);
+}
+
+
+static void
+_e_keyrouter_keygrab_keycancel_send_with_client(struct wl_client *client, unsigned int key)
+{
+   E_Keyrouter_Key_List_NodePtr data;
+   Eina_List *press_ptr_list = NULL;
+   Eina_List *l;
+
+   EINA_SAFETY_ON_NULL_RETURN(client);
+
+   g_rec_mutex_lock(&krt->grab_key_mutex);
+   press_ptr_list = e_keyrouter_hardkeys_list_get(krt->HardKeys, key, TIZEN_KEYROUTER_MODE_PRESSED);
+   EINA_LIST_FOREACH(press_ptr_list, l, data)
+     {
+        if (client != data->wc) continue;
+
+        e_keyrouter_wl_keycancel_send(client, key);
+     }
+   g_rec_mutex_unlock(&krt->grab_key_mutex);
+}
+
 int
 e_keyrouter_keygrab_unset(struct wl_client *client, struct wl_resource *surface, int key)
 {
@@ -308,9 +351,9 @@ e_keyrouter_keygrab_unset(struct wl_client *client, struct wl_resource *surface,
 
 finish:
    if (!surface)
-     e_keyrouter_keycancel_send_with_client(client, key);
+     _e_keyrouter_keygrab_keycancel_send_with_client(client, key);
    else
-     e_keyrouter_keycancel_send_with_surface(surface, key);
+     _e_keyrouter_keygrab_keycancel_send_with_surface(surface, key);
 
    return TIZEN_KEYROUTER_ERROR_NONE;
 }
index ad5257adb02f10dffef216509c9861bd866e9293..4acf520d5f582f17c62b6bb53c44277290638f18 100644 (file)
@@ -213,66 +213,19 @@ e_keyrouter_wl_key_send(Ecore_Event_Key *ev, E_Device *dev, Eina_Bool pressed, s
 }
 
 EINTERN void
-e_keyrouter_keycancel_send_with_surface(struct wl_resource *surface, unsigned int key)
+e_keyrouter_wl_keycancel_send(struct wl_client *client, unsigned int key)
 {
-   Eina_List *l;
    struct wl_resource *resource = NULL;
-   struct wl_client *wc = NULL;
-   E_Keyrouter_Key_List_NodePtr data;
-   Eina_List *press_ptr_list = NULL;
-
-   if (surface)
-     wc = wl_resource_get_client(surface);
-
-   EINA_SAFETY_ON_NULL_RETURN(wc);
-
-   g_rec_mutex_lock(&krt->grab_key_mutex);
-   press_ptr_list = e_keyrouter_hardkeys_list_get(krt->HardKeys, key, TIZEN_KEYROUTER_MODE_PRESSED);
-   EINA_LIST_FOREACH(press_ptr_list, l, data)
-     {
-        if (surface == data->surface)
-          {
-             g_rec_mutex_lock(&g_tizen_keyrouter->resource_list_mutex);
-             EINA_LIST_FOREACH(g_tizen_keyrouter->resources, l, resource)
-               {
-                  if (wl_resource_get_client(resource) != wc) continue;
-
-                  tizen_keyrouter_send_key_cancel(resource, key-8);
-               }
-             g_rec_mutex_unlock(&g_tizen_keyrouter->resource_list_mutex);
-          }
-     }
-   g_rec_mutex_unlock(&krt->grab_key_mutex);
-}
-
-
-EINTERN void
-e_keyrouter_keycancel_send_with_client(struct wl_client *client, unsigned int key)
-{
    Eina_List *l;
-   struct wl_resource *resource = NULL;
-   E_Keyrouter_Key_List_NodePtr data;
-   Eina_List *press_ptr_list = NULL;
-
-   EINA_SAFETY_ON_NULL_RETURN(client);
 
-   g_rec_mutex_lock(&krt->grab_key_mutex);
-   press_ptr_list = e_keyrouter_hardkeys_list_get(krt->HardKeys, key, TIZEN_KEYROUTER_MODE_PRESSED);
-   EINA_LIST_FOREACH(press_ptr_list, l, data)
-     {
-        if (client == data->wc)
-          {
-             g_rec_mutex_lock(&g_tizen_keyrouter->resource_list_mutex);
-             EINA_LIST_FOREACH(g_tizen_keyrouter->resources, l, resource)
-               {
-                  if (wl_resource_get_client(resource) != client) continue;
+   g_rec_mutex_lock(&g_tizen_keyrouter->resource_list_mutex);
+   EINA_LIST_FOREACH(g_tizen_keyrouter->resources, l, resource)
+   {
+      if (wl_resource_get_client(resource) != client) continue;
 
-                  tizen_keyrouter_send_key_cancel(resource, key-8);
-               }
-             g_rec_mutex_unlock(&g_tizen_keyrouter->resource_list_mutex);
-          }
-     }
-   g_rec_mutex_unlock(&krt->grab_key_mutex);
+      tizen_keyrouter_send_key_cancel(resource, key-8);
+   }
+   g_rec_mutex_unlock(&g_tizen_keyrouter->resource_list_mutex);
 }
 
 static int
index 9cf7505f4ecaa45d82aa02298f4d532678ced77c..da37872fe1104415cb8c14beda42809e928e7afe 100644 (file)
@@ -14,8 +14,7 @@ EINTERN void               e_keyrouter_wl_shutdown(void);
 EINTERN int       e_keyrouter_wl_add_client_destroy_listener(struct wl_client *client);
 EINTERN int       e_keyrouter_wl_add_surface_destroy_listener(struct wl_resource *surface);
 EINTERN Eina_Bool e_keyrouter_wl_key_send(Ecore_Event_Key *ev, E_Device *dev, Eina_Bool pressed, struct wl_client *client, struct wl_resource *surface, Eina_Bool focused);
-EINTERN void      e_keyrouter_keycancel_send_with_surface(struct wl_resource *surface, unsigned int key);
-EINTERN void      e_keyrouter_keycancel_send_with_client(struct wl_client *client, unsigned int key);
+EINTERN void      e_keyrouter_wl_keycancel_send(struct wl_client *client, unsigned int key);
 EINTERN void      e_keyrouter_wl_event_surface_send(struct wl_resource *surface, int key, int mode);
 
 EINTERN Eina_Bool e_keyrouter_wl_util_do_privilege_check(struct wl_client *client, uint32_t mode, uint32_t keycode);