keyrouter: replace eina_safety error log with e_log 84/283184/1
authorduna.oh <duna.oh@samsung.com>
Tue, 18 Oct 2022 01:00:19 +0000 (10:00 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Thu, 20 Oct 2022 02:41:56 +0000 (11:41 +0900)
provide more logs about the client which is exclusively
grabbing the key.

Change-Id: Ia4e14735cb740110204123fc3a0f9766be279c96

src/bin/e_keyrouter_list.c

index f64f128..5830987 100644 (file)
@@ -9,6 +9,9 @@ int
 e_keyrouter_set_keygrab_in_list(struct wl_resource *surface, struct wl_client *client, uint32_t key, uint32_t mode)
 {
    int res = TIZEN_KEYROUTER_ERROR_NONE;
+   Eina_List *keylist_ptr = NULL, *l = NULL;
+   E_Keyrouter_Key_List_NodePtr kdata = NULL;
+   int pid;
 
    EINA_SAFETY_ON_FALSE_RETURN_VAL
      (((mode == TIZEN_KEYROUTER_MODE_EXCLUSIVE) ||
@@ -17,11 +20,17 @@ e_keyrouter_set_keygrab_in_list(struct wl_resource *surface, struct wl_client *c
        (mode == TIZEN_KEYROUTER_MODE_SHARED)),
       TIZEN_KEYROUTER_ERROR_INVALID_MODE);
 
-   if (mode == TIZEN_KEYROUTER_MODE_EXCLUSIVE)
+   if ((mode == TIZEN_KEYROUTER_MODE_EXCLUSIVE) && (krt->HardKeys[key].excl_ptr != NULL))
      {
-        EINA_SAFETY_ON_TRUE_RETURN_VAL
-          ((krt->HardKeys[key].excl_ptr != NULL),
-           TIZEN_KEYROUTER_ERROR_GRABBED_ALREADY);
+        keylist_ptr = krt->HardKeys[key].excl_ptr;
+
+        EINA_LIST_FOREACH(keylist_ptr, l, kdata)
+          {
+             pid = e_keyrouter_util_get_pid(kdata->wc, kdata->surface);
+             KLINF("The key(%d) is already grabbed exclusively by other [surface: %p, client: %p, pid:%d(%s)]",
+                    key, kdata->surface, kdata->wc, pid, e_keyrouter_util_cmd_get_from_pid(pid));
+          }
+        return TIZEN_KEYROUTER_ERROR_GRABBED_ALREADY;
      }
 
    if (mode == TIZEN_KEYROUTER_MODE_TOPMOST)