Add mutex for key map and state 41/293841/4
authorJihoon Kim <jihoon48.kim@samsung.com>
Wed, 7 Jun 2023 02:02:31 +0000 (11:02 +0900)
committerJihoon Kim <jihoon48.kim@samsung.com>
Mon, 3 Jul 2023 11:24:27 +0000 (20:24 +0900)
Change-Id: Ib88985947102b861e6d0d5bb9667b11dc7063a85
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
src/e_mod_main.c

index 2ad56ff..274ca33 100644 (file)
@@ -465,10 +465,16 @@ _e_text_input_method_context_grab_set(E_Input_Method_Context *context, Eina_Bool
 
    if (set)
      {
+        g_mutex_lock(&e_comp_wl->xkb.keymap_mutex);
+        g_mutex_lock(&e_comp_wl->xkb.state_mutex);
         if (context->kbd.keymap) xkb_map_unref(context->kbd.keymap);
         if (context->kbd.state) xkb_state_unref(context->kbd.state);
+
         context->kbd.keymap = xkb_map_ref(e_comp_wl->xkb.keymap);
         context->kbd.state = xkb_state_new(e_comp_wl->xkb.keymap);
+        g_mutex_unlock(&e_comp_wl->xkb.state_mutex);
+        g_mutex_unlock(&e_comp_wl->xkb.keymap_mutex);
+
         if (!e_input_thread_mode_get())
           {
              E_LIST_HANDLER_APPEND(context->kbd.handlers, ECORE_EVENT_KEY_DOWN,