{
if (surface == key_node_data->surface)
{
- *list = eina_list_remove_list(*list, l);
- E_FREE(key_node_data);
+ if (mode == TIZEN_KEYROUTER_MODE_PRESSED)
+ {
+ key_node_data->deleted = EINA_TRUE;
+ }
+ else
+ {
+ *list = eina_list_remove_list(*list, l);
+ E_FREE(key_node_data);
+ }
KLDBG("Remove a %s Mode Grabbed key(%d) by surface(%p)\n", _mode_str_get(mode), key, surface);
}
}
else if ((wc == key_node_data->wc))
{
- *list = eina_list_remove_list(*list, l);
- E_FREE(key_node_data);
+ if (mode == TIZEN_KEYROUTER_MODE_PRESSED)
+ {
+ key_node_data->deleted = EINA_TRUE;
+ }
+ else
+ {
+ *list = eina_list_remove_list(*list, l);
+ E_FREE(key_node_data);
+ }
KLDBG("Remove a %s Mode Grabbed key(%d) by wc(%p)\n", _mode_str_get(mode), key, wc);
}
}
case TIZEN_KEYROUTER_MODE_TOPMOST: str = "Topmost"; break;
case TIZEN_KEYROUTER_MODE_SHARED: str = "Shared"; break;
case TIZEN_KEYROUTER_MODE_REGISTERED: str = "Registered"; break;
+ case TIZEN_KEYROUTER_MODE_PRESSED: str = "Pressed"; break;
default: str = "UnknownMode"; break;
}
case TIZEN_KEYROUTER_MODE_OVERRIDABLE_EXCLUSIVE: list = &krt->HardKeys[key].or_excl_ptr; break;
case TIZEN_KEYROUTER_MODE_TOPMOST: list = &krt->HardKeys[key].top_ptr; break;
case TIZEN_KEYROUTER_MODE_SHARED: list = &krt->HardKeys[key].shared_ptr; break;
+ case TIZEN_KEYROUTER_MODE_PRESSED: list = &krt->HardKeys[key].press_ptr; break;
default: break;
}
/* SHARED grab */
e_keyrouter_find_and_remove_client_from_list(NULL, client, key, TIZEN_KEYROUTER_MODE_SHARED);
+ /* Press List */
+ e_keyrouter_find_and_remove_client_from_list(NULL, client, key, TIZEN_KEYROUTER_MODE_PRESSED);
+
return TIZEN_KEYROUTER_ERROR_NONE;
}
/* REGISTERED grab */
e_keyrouter_unset_keyregister(surface, client, key);
+ /* Press List */
+ e_keyrouter_find_and_remove_client_from_list(surface, client, key, TIZEN_KEYROUTER_MODE_PRESSED);
+
return TIZEN_KEYROUTER_ERROR_NONE;
}