From: jeon Date: Mon, 9 Mar 2020 08:27:56 +0000 (+0900) Subject: e_keyrouter: remove canceled keys in press list X-Git-Tag: submit/tizen/20200309.085201^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9678306781d7ca84e1a76671c3e5631016b904fe;p=platform%2Fupstream%2Fenlightenment.git e_keyrouter: remove canceled keys in press list Change-Id: I477e6c490e57733bb4e9941314c3c78a037725a6 --- diff --git a/src/bin/e_keyrouter_events.c b/src/bin/e_keyrouter_events.c index 4eede2c764..e17cf36358 100644 --- a/src/bin/e_keyrouter_events.c +++ b/src/bin/e_keyrouter_events.c @@ -147,7 +147,6 @@ static void _e_keyrouter_key_cancel(int keycode) { Ecore_Event_Key *key_cancel, *key_release; - Eina_List *l; char *keyname; E_Keyrouter_Key_List_NodePtr key_node_data; int pid = 0; @@ -160,7 +159,7 @@ _e_keyrouter_key_cancel(int keycode) key_release = _e_keyrouter_key_create(keyname); EINA_SAFETY_ON_NULL_GOTO(key_release, failed); - EINA_LIST_FOREACH(krt->HardKeys[keycode].press_ptr, l, key_node_data) + EINA_LIST_FREE(krt->HardKeys[keycode].press_ptr, key_node_data) { _e_keyrouter_key_send(ECORE_EVENT_KEY_DOWN, key_cancel, key_node_data); _e_keyrouter_key_send(ECORE_EVENT_KEY_UP, key_release, key_node_data); @@ -173,7 +172,10 @@ _e_keyrouter_key_cancel(int keycode) key_node_data->surface, key_node_data->wc, pid, pname ?: "Unknown"); if(pname) E_FREE(pname); if(cmd) E_FREE(cmd); + + E_FREE(key_node_data); } + krt->HardKeys[keycode].press_ptr = NULL; _e_keyrouter_key_free(key_cancel); _e_keyrouter_key_free(key_release);