move ctrl+0,1,2... before imf processing so it works with imf on.
This commit is contained in:
parent
229b92f72f
commit
dd23ed64be
|
@ -1899,39 +1899,12 @@ _smart_cb_key_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__,
|
||||||
|
|
||||||
sd = evas_object_smart_data_get(data);
|
sd = evas_object_smart_data_get(data);
|
||||||
if (!sd) return;
|
if (!sd) return;
|
||||||
if (sd->imf)
|
// handle ctrl+1,2,3...9,0 specially before imf filtering
|
||||||
{
|
|
||||||
// EXCEPTION. Don't filter modifiers alt+shift -> breaks emacs
|
|
||||||
// and jed (alt+shift+5 for search/replace for example)
|
|
||||||
// Don't filter modifiers alt, is used by shells
|
|
||||||
if (!evas_key_modifier_is_set(ev->modifiers, "Alt"))
|
|
||||||
{
|
|
||||||
Ecore_IMF_Event_Key_Down imf_ev;
|
|
||||||
|
|
||||||
ecore_imf_evas_event_key_down_wrap(ev, &imf_ev);
|
|
||||||
if (!sd->composing)
|
|
||||||
{
|
|
||||||
if (ecore_imf_context_filter_event
|
|
||||||
(sd->imf, ECORE_IMF_EVENT_KEY_DOWN, (Ecore_IMF_Event *)&imf_ev))
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ((!evas_key_modifier_is_set(ev->modifiers, "Alt")) &&
|
if ((!evas_key_modifier_is_set(ev->modifiers, "Alt")) &&
|
||||||
(evas_key_modifier_is_set(ev->modifiers, "Control")) &&
|
(evas_key_modifier_is_set(ev->modifiers, "Control")) &&
|
||||||
(!evas_key_modifier_is_set(ev->modifiers, "Shift")))
|
(!evas_key_modifier_is_set(ev->modifiers, "Shift")))
|
||||||
{
|
{
|
||||||
if (!strcmp(ev->keyname, "Prior"))
|
if (!strcmp(ev->keyname, "1"))
|
||||||
{
|
|
||||||
evas_object_smart_callback_call(data, "prev", NULL);
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
else if (!strcmp(ev->keyname, "Next"))
|
|
||||||
{
|
|
||||||
evas_object_smart_callback_call(data, "next", NULL);
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
else if (!strcmp(ev->keyname, "1"))
|
|
||||||
{
|
{
|
||||||
_compose_seq_reset(sd);
|
_compose_seq_reset(sd);
|
||||||
evas_object_smart_callback_call(data, "tab,1", NULL);
|
evas_object_smart_callback_call(data, "tab,1", NULL);
|
||||||
|
@ -1992,6 +1965,39 @@ _smart_cb_key_down(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__,
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (sd->imf)
|
||||||
|
{
|
||||||
|
// EXCEPTION. Don't filter modifiers alt+shift -> breaks emacs
|
||||||
|
// and jed (alt+shift+5 for search/replace for example)
|
||||||
|
// Don't filter modifiers alt, is used by shells
|
||||||
|
if (!evas_key_modifier_is_set(ev->modifiers, "Alt"))
|
||||||
|
{
|
||||||
|
Ecore_IMF_Event_Key_Down imf_ev;
|
||||||
|
|
||||||
|
ecore_imf_evas_event_key_down_wrap(ev, &imf_ev);
|
||||||
|
if (!sd->composing)
|
||||||
|
{
|
||||||
|
if (ecore_imf_context_filter_event
|
||||||
|
(sd->imf, ECORE_IMF_EVENT_KEY_DOWN, (Ecore_IMF_Event *)&imf_ev))
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((!evas_key_modifier_is_set(ev->modifiers, "Alt")) &&
|
||||||
|
(evas_key_modifier_is_set(ev->modifiers, "Control")) &&
|
||||||
|
(!evas_key_modifier_is_set(ev->modifiers, "Shift")))
|
||||||
|
{
|
||||||
|
if (!strcmp(ev->keyname, "Prior"))
|
||||||
|
{
|
||||||
|
evas_object_smart_callback_call(data, "prev", NULL);
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
else if (!strcmp(ev->keyname, "Next"))
|
||||||
|
{
|
||||||
|
evas_object_smart_callback_call(data, "next", NULL);
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
}
|
||||||
if ((!evas_key_modifier_is_set(ev->modifiers, "Alt")) &&
|
if ((!evas_key_modifier_is_set(ev->modifiers, "Alt")) &&
|
||||||
(evas_key_modifier_is_set(ev->modifiers, "Control")) &&
|
(evas_key_modifier_is_set(ev->modifiers, "Control")) &&
|
||||||
(evas_key_modifier_is_set(ev->modifiers, "Shift")))
|
(evas_key_modifier_is_set(ev->modifiers, "Shift")))
|
||||||
|
|
Loading…
Reference in New Issue