e_keyrouter: Fix log timing issue when key is ungrabbed. 09/318209/1
authorTaeHyeon Jeong <thyeon.jeong@samsung.com>
Fri, 10 Jan 2025 10:51:40 +0000 (19:51 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Tue, 14 Jan 2025 07:14:43 +0000 (16:14 +0900)
If the log is recorded after grab_key_mutex unlock, it is not
guaranteed that the key was grabbed at the time the log was
recorded.

Change-Id: I326b2c2b03fae9cbac09f863394948500c4a9ebd

src/bin/inputmgr/e_keyrouter_list.c

index fd7ea461f28314fdec7521e40f84fecc603a03d8..117885c06b964abcdb44cbc34bc88daf5c6f69e4 100644 (file)
@@ -29,10 +29,11 @@ _e_keyrouter_find_duplicated_grabbed_key(struct wl_resource *surface, struct wl_
    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);
 
-   g_rec_mutex_unlock(&krt->grab_key_mutex);
-
    if (!is_grabbed)
-     return TIZEN_KEYROUTER_ERROR_NONE;
+     {
+        g_rec_mutex_unlock(&krt->grab_key_mutex);
+        return TIZEN_KEYROUTER_ERROR_NONE;
+     }
 
    if (surface)
      KLDBG("The key(%d) is already grabbed same mode(%s) on the same wl_surface %p",
@@ -41,6 +42,8 @@ _e_keyrouter_find_duplicated_grabbed_key(struct wl_resource *surface, struct wl_
      KLDBG("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;
 }