_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;
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);
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);