if (!active_ctx) return ECORE_CALLBACK_PASS_ON; /* the event is kept */
- if (check_nograb_backkey()) return ECORE_CALLBACK_PASS_ON; /* the event is kept */
-
if ((_input_panel_state == ECORE_IMF_INPUT_PANEL_STATE_SHOW ||
_input_panel_state == ECORE_IMF_INPUT_PANEL_STATE_WILL_SHOW) &&
check_hide_key(ev->keyname)) {
_ecore_event_to_ecore_imf_key_down_event(ev, &imf_event);
- if (_focused_ctx)
+ if (_focused_ctx) {
filter_ret = ecore_imf_context_filter_event(_focused_ctx, ECORE_IMF_EVENT_KEY_DOWN, (Ecore_IMF_Event *)&imf_event);
- else
+ } else {
LOGD("no focus");
+ if (check_nograb_backkey())
+ return ECORE_CALLBACK_PASS_ON; /* the event is kept */
+ }
SECURE_LOGD ("%s key is pressed. ret : %d", ev->keyname, filter_ret);
return ECORE_CALLBACK_DONE; /* the event is removed from the queue */
if (!active_ctx) return ECORE_CALLBACK_PASS_ON; /* the event is kept */
- if (check_nograb_backkey()) return ECORE_CALLBACK_PASS_ON; /* the event is kept */
-
if (_input_panel_state == ECORE_IMF_INPUT_PANEL_STATE_HIDE ||
!check_hide_key(ev->keyname))
return ECORE_CALLBACK_PASS_ON; /* the event is kept */
return ECORE_CALLBACK_DONE; /* the event is removed from the queue */
}
else {
+ if (check_nograb_backkey())
+ return ECORE_CALLBACK_PASS_ON; /* the event is kept */
+
ecore_imf_context_reset(active_ctx);
_input_panel_hide(active_ctx, EINA_TRUE);
return ECORE_CALLBACK_DONE; /* the event is removed from the queue */