From: Dhiraj Kr Mishra Date: Tue, 4 Oct 2016 08:47:03 +0000 (+0530) Subject: "Fix TOPMOST Mode Event Delivery Surface" X-Git-Tag: submit/tizen/20161013.111810^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=65fcd7fb0c118eb0c334292870971a271dbf664b;p=platform%2Fcore%2Fuifw%2Fe-mod-tizen-keyrouter.git "Fix TOPMOST Mode Event Delivery Surface" If window stack changed TOPMOST mode key delivery should be sent to the surface, which has been promoted to the head of top_ptr list. top_ptr list is being updated by _e_keyrouter_check_top_visible_window,however while sending event obselete surface data was used as a result first event was not delivering to correct surface. Change-Id: I10364d6a478ba7d5b75186f289433df8971bea23 Signed-off-by: Dhiraj Kr Mishra --- diff --git a/src/e_mod_keyrouter_events.c b/src/e_mod_keyrouter_events.c index 3447968..93450d1 100644 --- a/src/e_mod_keyrouter_events.c +++ b/src/e_mod_keyrouter_events.c @@ -271,14 +271,15 @@ _e_keyrouter_send_key_events_press(int type, Ecore_Event_Key *ev) if (_e_keyrouter_check_top_visible_window(ec_focus, keycode)) { - pid = e_keyrouter_util_get_pid(key_node_data->wc, key_node_data->surface); + E_Keyrouter_Key_List_NodePtr top_key_node_data = eina_list_data_get(krt->HardKeys[keycode].top_ptr); + pid = e_keyrouter_util_get_pid(top_key_node_data->wc, top_key_node_data->surface); pname = e_keyrouter_util_process_name_get_from_cmd(e_keyrouter_util_cmd_get_from_pid(pid)); - res = _e_keyrouter_send_key_event(type, key_node_data->surface, NULL, ev, key_node_data->focused, + res = _e_keyrouter_send_key_event(type, top_key_node_data->surface, NULL, ev, top_key_node_data->focused, TIZEN_KEYROUTER_MODE_TOPMOST); KLINF("TOPMOST (TOP_POSITION) : %s (%s:%d) => Surface (%p) (pid: %d) (pname: %s)", ((ECORE_EVENT_KEY_DOWN == type) ? "Down" : "Up"), ev->keyname, ev->keycode, - key_node_data->surface, pid, pname); + top_key_node_data->surface, pid, pname); E_FREE(pname); return res;