Modified to retain the key event data in the input event queue 48/319448/1
authorInhong Han <inhong1.han@samsung.com>
Wed, 23 Oct 2024 07:31:41 +0000 (16:31 +0900)
committerInhong Han <inhong1.han@samsung.com>
Wed, 23 Oct 2024 07:31:41 +0000 (16:31 +0900)
Change-Id: I587df42b2ceea62a6331df93d37394c3454e32b4

src/e_mod_main.c

index 5e4e21565b3511f093859286acdf288522250ae0..2fdb25071c357d1743c2c98c6b3f646f2ec86d10 100644 (file)
@@ -868,7 +868,7 @@ _e_text_input_method_context_cb_modifiers_map(struct wl_client *client EINA_UNUS
 }
 
 static void
-_e_keyevent_free(void *ev)
+_e_keyevent_free(void *data EINA_UNUSED, void *ev)
 {
    Ecore_Event_Key *e = ev;
 
@@ -904,16 +904,16 @@ feed_key_event(const char *keyname, const char *key, const char *string, int key
 
    if (!e_input_thread_mode_get())
      {
-        ecore_event_add(state ? ECORE_EVENT_KEY_DOWN : ECORE_EVENT_KEY_UP, e, NULL, NULL);
+        ecore_event_add(state ? ECORE_EVENT_KEY_DOWN : ECORE_EVENT_KEY_UP, e, _e_keyevent_free, NULL);
      }
    else
      {
         E_Input_Event_Source *input_event_source = e_input_event_source_get();
         if (input_event_source)
-          e_input_event_add(input_event_source, state ? ECORE_EVENT_KEY_DOWN : ECORE_EVENT_KEY_UP, e, NULL, NULL);
+          e_input_event_add(input_event_source, state ? ECORE_EVENT_KEY_DOWN : ECORE_EVENT_KEY_UP, e, _e_keyevent_free, NULL);
+        else
+          _e_keyevent_free(NULL, e);
      }
-
-   _e_keyevent_free(e);
 }
 
 static void