EINA_SAFETY_ON_TRUE_RETURN_VAL(((!surface) && (!wc)), EINA_FALSE);
+ g_mutex_lock(&krt->grab_key_mutex);
list = _e_keyrouter_get_list(mode, key);
- EINA_SAFETY_ON_NULL_RETURN_VAL(list, EINA_FALSE);
+ if (!list)
+ {
+ g_mutex_unlock(&krt->grab_key_mutex);
+ return EINA_FALSE;
+ }
EINA_LIST_FOREACH_SAFE(*list, l, l_next, key_node_data)
{
if (!key_node_data) continue;
- if ((surface) && (surface == key_node_data->surface)) return EINA_TRUE;
- else if ((wc == key_node_data->wc)) return EINA_TRUE;
+ if ((surface) && (surface == key_node_data->surface))
+ {
+ g_mutex_unlock(&krt->grab_key_mutex);
+ return EINA_TRUE;
+ }
+ else if ((wc == key_node_data->wc))
+ {
+ g_mutex_unlock(&krt->grab_key_mutex);
+ return EINA_TRUE;
+ }
}
+ g_mutex_unlock(&krt->grab_key_mutex);
+
return EINA_FALSE;
}
Eina_List *l = NULL, *l_next = NULL;
E_Keyrouter_Key_List_NodePtr key_node_data = NULL;
+ g_mutex_lock(&krt->grab_key_mutex);
list = _e_keyrouter_get_list(mode, key);
- EINA_SAFETY_ON_NULL_RETURN(list);
+ if (!list)
+ {
+ g_mutex_unlock(&krt->grab_key_mutex);
+ return;
+ }
EINA_LIST_FOREACH_SAFE(*list, l, l_next, key_node_data)
{
KLDBG("Remove a %s Mode Grabbed key(%d) by wc(%p)", e_keyrouter_mode_to_string(mode), key, wc);
}
}
+
+ g_mutex_unlock(&krt->grab_key_mutex);
}
void
{
Eina_List **list = NULL;
- g_mutex_lock(&e_comp->input_key_grabs_mutex);
-
switch (mode)
{
case TIZEN_KEYROUTER_MODE_EXCLUSIVE: list = &krt->HardKeys[key].excl_ptr; break;
default: break;
}
- g_mutex_unlock(&e_comp->input_key_grabs_mutex);
-
return list;
}