Eina_Bool res = EINA_TRUE;
Ecore_Event_Key *ev = event;
- if (!ev) return res;
+ TRACE_BEGIN(e_keyrouter_process_key_event);
+
+ if (!ev) goto finish;
KLDBG("[%s] keyname: %s, key: %s, keycode: %d\n", (type == ECORE_EVENT_KEY_DOWN) ? "KEY_PRESS" : "KEY_RELEASE", ev->keyname, ev->key, ev->keycode);
if (krt->max_tizen_hwkeys < ev->keycode)
{
KLWRN("The key(%d) is too larger to process keyrouting: Invalid keycode\n", ev->keycode);
- return res;
+ goto finish;
}
if ((ECORE_EVENT_KEY_DOWN == type) && (!_e_keyrouter_is_key_grabbed(ev->keycode)))
{
KLDBG("The press key(%d) isn't a grabbable key or has not been grabbed yet !\n", ev->keycode);
- return res;
+ goto finish;
}
if ((ECORE_EVENT_KEY_UP == type) && (!krt->HardKeys[ev->keycode].press_ptr))
{
KLDBG("The release key(%d) isn't a grabbable key or has not been grabbed yet !\n", ev->keycode);
- return res;
+ goto finish;
}
//KLDBG("The key(%d) is going to be sent to the proper wl client(s) !\n", ev->keycode);
if (_e_keyrouter_send_key_events(type, ev))
res = EINA_FALSE;
+finish:
+ TRACE_END();
return res;
}
{
if (key_node_data)
{
+ TRACE_BEGIN(_e_keyrouter_send_key_event_release);
_e_keyrouter_send_key_event(type, key_node_data->surface, key_node_data->wc, ev);
KLINF("Release Pair : Key %s(%s:%d) ===> E_Client (%p) WL_Client (%p)\n",
((ECORE_EVENT_KEY_DOWN == type) ? "Down" : "Up"), ev->keyname, ev->keycode, key_node_data->surface, key_node_data->wc);
E_FREE(key_node_data);
+ TRACE_END();
}
}
krt->HardKeys[ev->keycode].press_ptr = NULL;
{
if (key_node_data)
{
+ TRACE_BEGIN(_e_keyrouter_send_key_event_exclusive);
+
_e_keyrouter_send_key_event(type, key_node_data->surface, key_node_data->wc, ev);
KLINF("EXCLUSIVE Mode : Key %s(%s:%d) ===> Surface (%p) WL_Client (%p)\n",
((ECORE_EVENT_KEY_DOWN == type) ? "Down" : "Up"), ev->keyname, ev->keycode, key_node_data->surface, key_node_data->wc);
+ TRACE_END();
return EINA_TRUE;
}
}
{
if (key_node_data)
{
+ TRACE_BEGIN(_e_keyrouter_send_key_event_or_exclusive);
_e_keyrouter_send_key_event(type, key_node_data->surface, key_node_data->wc, ev);
KLINF("OVERRIDABLE_EXCLUSIVE Mode : Key %s(%s:%d) ===> Surface (%p) WL_Client (%p)\n",
((ECORE_EVENT_KEY_DOWN == type) ? "Down" : "Up"), ev->keyname, ev->keycode, key_node_data->surface, key_node_data->wc);
+ TRACE_END();
return EINA_TRUE;
}
}
{
if ((EINA_FALSE == krt->isWindowStackChanged) && (surface_focus == key_node_data->surface))
{
+ TRACE_BEGIN(_e_keyrouter_send_key_event_topposition);
_e_keyrouter_send_key_event(type, key_node_data->surface, NULL, ev);
KLINF("TOPMOST (TOP_POSITION) Mode : Key %s (%s:%d) ===> Surface (%p)\n",
((ECORE_EVENT_KEY_DOWN == type) ? "Down" : "Up"), ev->keyname, ev->keycode, key_node_data->surface);
+ TRACE_END();
return EINA_TRUE;
}
krt->isWindowStackChanged = EINA_FALSE;
if (_e_keyrouter_check_top_visible_window(ec_focus, keycode))
{
+ TRACE_BEGIN(_e_keyrouter_send_key_event_topposition);
_e_keyrouter_send_key_event(type, key_node_data->surface, NULL, ev);
KLINF("TOPMOST (TOP_POSITION) Mode : Key %s (%s:%d) ===> Surface (%p)\n",
((ECORE_EVENT_KEY_DOWN == type) ? "Down" : "Up"), ev->keyname, ev->keycode,key_node_data->surface);
+ TRACE_END();
return EINA_TRUE;
}
break;
{
if (key_node_data->surface != surface_focus)
{
+ TRACE_BEGIN(_e_keyrouter_send_key_event_shared);
_e_keyrouter_send_key_event(type, key_node_data->surface, key_node_data->wc, ev);
KLINF("SHARED Mode : Key %s(%s:%d) ===> Surface (%p) WL_Client (%p)\n",
((ECORE_EVENT_KEY_DOWN == type) ? "Down" : "Up"), ev->keyname, ev->keycode, key_node_data->surface, key_node_data->wc);
+ TRACE_END();
}
}
else
{
if ((surface_focus) && (key_node_data->wc != wl_resource_get_client(surface_focus)))
{
+ TRACE_BEGIN(_e_keyrouter_send_key_event_shared);
_e_keyrouter_send_key_event(type, key_node_data->surface, key_node_data->wc, ev);
KLINF("SHARED Mode : Key %s(%s:%d) ===> Surface (%p) WL_Client (%p)\n",
((ECORE_EVENT_KEY_DOWN == type) ? "Down" : "Up"), ev->keyname, ev->keycode, key_node_data->surface, key_node_data->wc);
+ TRACE_END();
}
}
}
return EINA_FALSE;
}
+ TRACE_BEGIN(_e_keyrouter_send_key_event_register);
+
_e_keyrouter_send_key_event(type, krt->HardKeys[keycode].registered_ptr->surface, NULL, ev);
KLINF("REGISTER Mode : Key %s(%s:%d) ===> Surface (%p)\n",
((ECORE_EVENT_KEY_DOWN == type) ? "Down" : "Up"), ev->keyname, ev->keycode, krt->HardKeys[keycode].registered_ptr->surface);
+ TRACE_END();
+
return EINA_TRUE;
}
{
int res = 0;
+ TRACE_BEGIN(_e_keyrouter_cb_keygrab_set);
KLINF("Key grab request (client: %p, surface: %p, key:%d, mode:%d)\n", client, surface, key, mode);
res = _e_keyrouter_keygrab_set(client, surface, key, mode);
+ TRACE_END();
tizen_keyrouter_send_keygrab_notify(resource, surface, key, mode, res);
}
{
int res = 0;
+ TRACE_BEGIN(_e_keyrouter_cb_keygrab_unset);
KLINF("Key ungrab request (client: %p, surface: %p, key:%d)\n", client, surface, key);
res = _e_keyrouter_keygrab_unset(client, surface, key);
+ TRACE_END();
tizen_keyrouter_send_keygrab_notify(resource, surface, key, TIZEN_KEYROUTER_MODE_NONE, res);
}
(void) key;
int mode = TIZEN_KEYROUTER_MODE_NONE;
+ TRACE_BEGIN(_e_keyrouter_cb_get_keygrab_status);
mode = e_keyrouter_find_key_in_list(surface, client, key);
+ TRACE_END();
tizen_keyrouter_send_keygrab_notify(resource, surface, key, mode, TIZEN_KEYROUTER_ERROR_NONE);
}
E_Keyrouter_Grab_Request *grab_request = NULL;
int res = TIZEN_KEYROUTER_ERROR_NONE;
+ TRACE_BEGIN(_e_keyrouter_cb_keygrab_set_list);
+
wl_array_init(&grab_result_list);
if (0 != (_e_keyrouter_wl_array_length(grab_list) % 2))
}
send_notify:
+ TRACE_END();
tizen_keyrouter_send_keygrab_notify_list(resource, surface, &grab_result_list);
wl_array_release(&grab_result_list);
}
int *ungrab_request = NULL;
int res = TIZEN_KEYROUTER_ERROR_NONE;
+ TRACE_BEGIN(_e_keyrouter_cb_keygrab_unset_list);
+
wl_array_init(&grab_result_list);
wl_array_for_each(ungrab_request, ungrab_list)
}
}
+ TRACE_END();
tizen_keyrouter_send_keygrab_notify_list(resource, surface, &grab_result_list);
wl_array_release(&grab_result_list);
}
Eina_Bool res = EINA_FALSE;
int ret;
+ TRACE_BEGIN(_e_keyrouter_init);
+
if (!krt)
{
KLERR("Failed to allocate memory for krt !\n");
+ TRACE_END();
return NULL;
}
}
#endif
+ TRACE_END();
return kconfig;
err:
if (krt && krt->ef_handler) ecore_event_filter_del(krt->ef_handler);
if (krt) E_FREE(krt);
+ TRACE_END();
return NULL;
}
Eina_List *l;
E_Keyrouter_Tizen_HWKey *data;
+ TRACE_BEGIN(_e_keyrouter_query_tizen_key_table);
+
/* TODO: Make struct in HardKeys to pointer.
If a key is defined, allocate memory to pointer,
that makes to save unnecessary memory */
krt->HardKeys[data->keycode].keycode = data->keycode;
krt->HardKeys[data->keycode].keyname = eina_stringshare_add(data->name);
}
+
+ TRACE_END();
return EINA_TRUE;
}