From 9678306781d7ca84e1a76671c3e5631016b904fe Mon Sep 17 00:00:00 2001 From: jeon Date: Mon, 9 Mar 2020 17:27:56 +0900 Subject: [PATCH] e_keyrouter: remove canceled keys in press list Change-Id: I477e6c490e57733bb4e9941314c3c78a037725a6 --- src/bin/e_keyrouter_events.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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); -- 2.34.1