allocate E_Keyrouter_Event_Data to key event's data 85/182585/2
authorJengHyun Kang <jhyuni.kang@samsung.com>
Tue, 26 Jun 2018 08:51:38 +0000 (17:51 +0900)
committerJengHyun Kang <jhyuni.kang@samsung.com>
Wed, 27 Jun 2018 00:43:31 +0000 (09:43 +0900)
Change-Id: I38e39ccfd2d6158f9f4068f684a2faff7186d4b9

src/e_devicemgr_device.c

index 94ae96aaf5fee434e24d9a99a702ce71810ff9fa..d9a9a1d39eaa4efcfc35028691694b97b3dd39af 100644 (file)
@@ -1,6 +1,7 @@
 #include "e_devicemgr_device.h"
 #include "e_devicemgr_privates.h"
 #include <tizen-extension-server-protocol.h>
+#include <e_keyrouter.h>
 
 static Eina_List *handlers = NULL;
 
@@ -1428,6 +1429,7 @@ _e_input_devmgr_keyevent_free(void *data EINA_UNUSED, void *ev)
    eina_stringshare_del(e->compose);
 
    if (e->dev) ecore_device_unref(e->dev);
+   if (e->data) E_FREE(e->data);
 
    free(e);
 }
@@ -1437,6 +1439,7 @@ _e_input_devmgr_generate_key_event(const char *key, Eina_Bool pressed, char *ide
 {
    Ecore_Event_Key *e;
    unsigned int keycode;
+   E_Keyrouter_Event_Data *key_data;
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(key, TIZEN_INPUT_DEVICE_MANAGER_ERROR_INVALID_PARAMETER);
 
@@ -1457,7 +1460,9 @@ _e_input_devmgr_generate_key_event(const char *key, Eina_Bool pressed, char *ide
    e->timestamp = (int)(ecore_time_get() * 1000);
    e->same_screen = 1;
    e->keycode = keycode;
-   e->data = NULL;
+   key_data = E_NEW(E_Keyrouter_Event_Data, 1);
+   EINA_SAFETY_ON_NULL_GOTO(key_data, finish);
+   e->data = key_data;
 
    e->modifiers = 0;
    e->dev = ecore_device_ref(e_input_evdev_get_ecore_device(identifier, ECORE_DEVICE_CLASS_KEYBOARD));