if (key_node_data)
{
_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);
+ KLINF("Release Pair : Key %s(%s:%d) ===> E_Client (%p) WL_Client (%p) (pid: %d)\n",
+ ((ECORE_EVENT_KEY_DOWN == type) ? "Down" : "Up"), ev->keyname, ev->keycode,
+ key_node_data->surface, key_node_data->wc, e_keyrouter_util_get_pid(key_node_data->wc, key_node_data->surface));
E_FREE(key_node_data);
}
}
if (key_node_data)
{
_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);
+ KLINF("EXCLUSIVE Mode : Key %s(%s:%d) ===> Surface (%p) WL_Client (%p) (pid: %d)\n",
+ ((ECORE_EVENT_KEY_DOWN == type) ? "Down" : "Up"), ev->keyname, ev->keycode,
+ key_node_data->surface, key_node_data->wc, e_keyrouter_util_get_pid(key_node_data->wc, key_node_data->surface));
return EINA_TRUE;
}
if (key_node_data)
{
_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);
+ KLINF("OVERRIDABLE_EXCLUSIVE Mode : Key %s(%s:%d) ===> Surface (%p) WL_Client (%p) (pid: %d)\n",
+ ((ECORE_EVENT_KEY_DOWN == type) ? "Down" : "Up"), ev->keyname, ev->keycode,
+ key_node_data->surface, key_node_data->wc, e_keyrouter_util_get_pid(key_node_data->wc, key_node_data->surface));
return EINA_TRUE;
}
if ((EINA_FALSE == krt->isWindowStackChanged) && (surface_focus == key_node_data->surface))
{
_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);
+ KLINF("TOPMOST (TOP_POSITION) Mode : Key %s (%s:%d) ===> Surface (%p) (pid: %d)\n",
+ ((ECORE_EVENT_KEY_DOWN == type) ? "Down" : "Up"), ev->keyname, ev->keycode,
+ key_node_data->surface, e_keyrouter_util_get_pid(key_node_data->wc, key_node_data->surface));
return EINA_TRUE;
}
if (_e_keyrouter_check_top_visible_window(ec_focus, keycode))
{
_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);
+ KLINF("TOPMOST (TOP_POSITION) Mode : Key %s (%s:%d) ===> Surface (%p) (pid: %d)\n",
+ ((ECORE_EVENT_KEY_DOWN == type) ? "Down" : "Up"), ev->keyname, ev->keycode,
+ key_node_data->surface, e_keyrouter_util_get_pid(key_node_data->wc, key_node_data->surface));
return EINA_TRUE;
}
if (krt->HardKeys[keycode].shared_ptr)
{
_e_keyrouter_send_key_event(type, surface_focus, NULL, ev);
- KLINF("SHARED [Focus client] : Key %s (%s:%d) ===> Surface (%p)\n",
- ((ECORE_EVENT_KEY_DOWN == type) ? "Down" : "Up "), ev->keyname, ev->keycode, surface_focus);
+ KLINF("SHARED [Focus client] : Key %s (%s:%d) ===> Surface (%p) (pid: %d)\n",
+ ((ECORE_EVENT_KEY_DOWN == type) ? "Down" : "Up "), ev->keyname, ev->keycode,
+ surface_focus, e_keyrouter_util_get_pid(key_node_data->wc, key_node_data->surface));
EINA_LIST_FOREACH(krt->HardKeys[keycode].shared_ptr, l, key_node_data)
{
if (key_node_data->surface != surface_focus)
{
_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);
+ KLINF("SHARED Mode : Key %s(%s:%d) ===> Surface (%p) WL_Client (%p) (pid: %d)\n",
+ ((ECORE_EVENT_KEY_DOWN == type) ? "Down" : "Up"), ev->keyname, ev->keycode,
+ key_node_data->surface, key_node_data->wc, e_keyrouter_util_get_pid(key_node_data->wc, key_node_data->surface));
}
}
else
(!surface_focus))
{
_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);
+ KLINF("SHARED Mode : Key %s(%s:%d) ===> Surface (%p) WL_Client (%p) (pid: %d)\n",
+ ((ECORE_EVENT_KEY_DOWN == type) ? "Down" : "Up"), ev->keyname, ev->keycode,
+ key_node_data->surface, key_node_data->wc, e_keyrouter_util_get_pid(key_node_data->wc, key_node_data->surface));
}
}
}
}
_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);
+ KLINF("REGISTER Mode : Key %s(%s:%d) ===> Surface (%p) (pid: %d)\n",
+ ((ECORE_EVENT_KEY_DOWN == type) ? "Down" : "Up"), ev->keyname, ev->keycode,
+ krt->HardKeys[keycode].registered_ptr->surface, e_keyrouter_util_get_pid(NULL, krt->HardKeys[keycode].registered_ptr->surface));
return EINA_TRUE;
}
return client->comp_data->wl_surface;
}
+
+int
+e_keyrouter_util_get_pid(struct wl_client *client, struct wl_resource *surface)
+{
+ pid_t pid = 0;
+ uid_t uid = 0;
+ gid_t gid = 0;
+ struct wl_client *cur_client = NULL;
+
+ if (client) cur_client = client;
+ else cur_client = wl_resource_get_client(surface);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(cur_client, 0);
+
+ wl_client_get_credentials(cur_client, &pid, &uid, &gid);
+
+ return pid;
+}
int res = 0;
TRACE_INPUT_BEGIN(_e_keyrouter_cb_keygrab_set);
- KLINF("Key grab request (client: %p, surface: %p, key:%d, mode:%d)\n", client, surface, key, mode);
+ KLINF("Key grab request (client: %p, surface: %p, pid: %d, key:%d, mode:%d)\n", client, surface, e_keyrouter_util_get_pid(client, surface), key, mode);
res = _e_keyrouter_keygrab_set(client, surface, key, mode);
int res = 0;
TRACE_INPUT_BEGIN(_e_keyrouter_cb_keygrab_unset);
- KLINF("Key ungrab request (client: %p, surface: %p, key:%d)\n", client, surface, key);
+ KLINF("Key ungrab request (client: %p, surface: %p, pid: %d, key:%d)\n", client, surface, e_keyrouter_util_get_pid(client, surface), key);
res = _e_keyrouter_keygrab_unset(client, surface, key);
wl_array_for_each(grab_request, grab_list)
{
- KLINF("Grab request using list (client: %p, surface: %p, key: %d, mode: %d]\n", client, surface, grab_request->key, grab_request->mode);
+ KLINF("Grab request using list (client: %p, surface: %p, pid: %d, key: %d, mode: %d]\n", client, surface, e_keyrouter_util_get_pid(client, surface), grab_request->key, grab_request->mode);
res = _e_keyrouter_keygrab_set(client, surface, grab_request->key, grab_request->mode);
grab_result = wl_array_add(&grab_result_list, sizeof(E_Keyrouter_Grab_Result));
if (grab_result)
wl_array_for_each(ungrab_request, ungrab_list)
{
- KLINF("Ungrab request using list (client: %p, surface: %p, key: %d, res: %d]\n", client, surface, *ungrab_request, res);
+ KLINF("Ungrab request using list (client: %p, surface: %p, pid: %d, key: %d, res: %d]\n", client, surface, e_keyrouter_util_get_pid(client, surface), *ungrab_request, res);
res = _e_keyrouter_keygrab_unset(client, surface, *ungrab_request);
grab_result = wl_array_add(&grab_result_list, sizeof(E_Keyrouter_Grab_Result));
if (grab_result)