using ecore_device_ref/unref to generate ecore events 07/173007/1 accepted/tizen/unified/20180328.010055 submit/tizen/20180319.053649
authorJengHyun Kang <jhyuni.kang@samsung.com>
Mon, 19 Mar 2018 07:41:21 +0000 (16:41 +0900)
committerJengHyun Kang <jhyuni.kang@samsung.com>
Mon, 19 Mar 2018 07:41:21 +0000 (16:41 +0900)
Change-Id: Ib5286424389751f64745fa9252761d407ef8f389

src/e_mod_keyrouter_events.c

index a4ca5c7..2c7fef8 100644 (file)
@@ -40,6 +40,8 @@ _e_keyrouter_event_key_free(void *data EINA_UNUSED, void *ev)
    eina_stringshare_del(e->string);
    eina_stringshare_del(e->compose);
 
+   if (e->dev) ecore_device_unref(e->dev);
+
    E_FREE(e);
 }
 
@@ -69,7 +71,7 @@ _e_keyrouter_event_generate_key(Ecore_Event_Key *ev, int type, struct wl_client
    ev_cpy->keycode = ev->keycode;
 
    ev_cpy->data = send_surface;
-   ev_cpy->dev = ev->dev;
+   ev_cpy->dev = ecore_device_ref(ev->dev);
 
    if (ECORE_EVENT_KEY_DOWN == type)
      ecore_event_add(ECORE_EVENT_KEY_DOWN, ev_cpy, _e_keyrouter_event_key_free, NULL);