fix ctrl+minus. Closes T922
This commit is contained in:
parent
e1de7a8521
commit
90b3a93698
|
@ -217,7 +217,8 @@ _key_try(Termpty *ty, const Keyout *map, Evas_Event_Key_Down *ev)
|
|||
}
|
||||
|
||||
void
|
||||
keyin_handle(Termpty *ty, Evas_Event_Key_Down *ev)
|
||||
keyin_handle(Termpty *ty, Evas_Event_Key_Down *ev,
|
||||
int alt, int shift, int ctrl)
|
||||
{
|
||||
if (ty->state.crlf)
|
||||
{
|
||||
|
@ -228,10 +229,9 @@ keyin_handle(Termpty *ty, Evas_Event_Key_Down *ev)
|
|||
if (_key_try(ty, nocrlf_keyout, ev)) return;
|
||||
}
|
||||
if (
|
||||
((ty->state.alt_kp) &&
|
||||
(evas_key_modifier_is_set(ev->modifiers, "Shift")))
|
||||
((ty->state.alt_kp) && (shift))
|
||||
// || ((!ty->state.alt_kp) &&
|
||||
// (!evas_key_modifier_is_set(ev->modifiers, "Shift")))
|
||||
// (!shift))
|
||||
)
|
||||
{
|
||||
if (_key_try(ty, kps_keyout, ev)) return;
|
||||
|
@ -243,9 +243,9 @@ keyin_handle(Termpty *ty, Evas_Event_Key_Down *ev)
|
|||
if (_key_try(ty, kp_keyout, ev)) return;
|
||||
}
|
||||
}
|
||||
if (evas_key_modifier_is_set(ev->modifiers, "Control"))
|
||||
if (ctrl)
|
||||
{
|
||||
if (!strcmp(ev->key, "Minus"))
|
||||
if (!strcmp(ev->key, "minus"))
|
||||
{
|
||||
termpty_write(ty, "\037", 1); // generate US (unit separator)
|
||||
return;
|
||||
|
@ -255,17 +255,17 @@ keyin_handle(Termpty *ty, Evas_Event_Key_Down *ev)
|
|||
termpty_write(ty, "\0", 1); // generate 0 byte for ctrl+space
|
||||
return;
|
||||
}
|
||||
else if (!evas_key_modifier_is_set(ev->modifiers, "Shift"))
|
||||
else if (!shift)
|
||||
{
|
||||
if (_key_try(ty, ctrl_keyout, ev)) return;
|
||||
}
|
||||
}
|
||||
else if (evas_key_modifier_is_set(ev->modifiers, "Shift"))
|
||||
else if (shift)
|
||||
{
|
||||
if (_key_try(ty, shift_keyout, ev)) return;
|
||||
}
|
||||
|
||||
else if (evas_key_modifier_is_set(ev->modifiers, "Alt"))
|
||||
else if (alt)
|
||||
{
|
||||
if (_key_try(ty, alt_keyout, ev)) return;
|
||||
}
|
||||
|
@ -302,7 +302,7 @@ keyin_handle(Termpty *ty, Evas_Event_Key_Down *ev)
|
|||
{
|
||||
if ((ev->string[0]) && (!ev->string[1]))
|
||||
{
|
||||
if (evas_key_modifier_is_set(ev->modifiers, "Alt"))
|
||||
if (alt)
|
||||
termpty_write(ty, "\033", 1);
|
||||
}
|
||||
termpty_write(ty, ev->string, strlen(ev->string));
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#ifndef _KEYIN_H__
|
||||
#define _KEYIN_H__ 1
|
||||
|
||||
void keyin_handle(Termpty *ty, Evas_Event_Key_Down *ev);
|
||||
void keyin_handle(Termpty *ty, Evas_Event_Key_Down *ev,
|
||||
int alt, int shift, int ctrl);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -2065,11 +2065,12 @@ _smart_cb_key_down(void *data, Evas *e EINA_UNUSED,
|
|||
Termio *sd = evas_object_smart_data_get(data);
|
||||
Ecore_Compose_State state;
|
||||
char *compres = NULL;
|
||||
int alt = evas_key_modifier_is_set(ev->modifiers, "Alt");
|
||||
int shift = evas_key_modifier_is_set(ev->modifiers, "Shift");
|
||||
int ctrl = evas_key_modifier_is_set(ev->modifiers, "Control");
|
||||
|
||||
EINA_SAFETY_ON_NULL_RETURN(sd);
|
||||
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 ((!alt) && (ctrl) && (!shift))
|
||||
{
|
||||
if (!strcmp(ev->key, "Prior"))
|
||||
{
|
||||
|
@ -2142,9 +2143,7 @@ _smart_cb_key_down(void *data, Evas *e EINA_UNUSED,
|
|||
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 ((!alt) && (ctrl) && (shift))
|
||||
{
|
||||
if (!strcmp(ev->key, "Prior"))
|
||||
{
|
||||
|
@ -2183,9 +2182,7 @@ _smart_cb_key_down(void *data, Evas *e EINA_UNUSED,
|
|||
goto end;
|
||||
}
|
||||
}
|
||||
if ((evas_key_modifier_is_set(ev->modifiers, "Alt")) &&
|
||||
(!evas_key_modifier_is_set(ev->modifiers, "Shift")) &&
|
||||
(!evas_key_modifier_is_set(ev->modifiers, "Control")))
|
||||
if ((alt) && (!shift) && (!ctrl))
|
||||
{
|
||||
if (!strcmp(ev->key, "Home"))
|
||||
{
|
||||
|
@ -2200,9 +2197,7 @@ _smart_cb_key_down(void *data, Evas *e EINA_UNUSED,
|
|||
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 ((alt) && (ctrl) && (!shift))
|
||||
{
|
||||
if (_handle_alt_ctrl(ev->key, data))
|
||||
{
|
||||
|
@ -2215,7 +2210,7 @@ _smart_cb_key_down(void *data, Evas *e EINA_UNUSED,
|
|||
// 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"))
|
||||
if ((!alt) && (!ctrl))
|
||||
{
|
||||
Ecore_IMF_Event_Key_Down imf_ev;
|
||||
|
||||
|
@ -2228,8 +2223,7 @@ _smart_cb_key_down(void *data, Evas *e EINA_UNUSED,
|
|||
}
|
||||
}
|
||||
}
|
||||
if ((evas_key_modifier_is_set(ev->modifiers, "Shift")) &&
|
||||
(ev->key))
|
||||
if ((shift) && (ev->key))
|
||||
{
|
||||
int by = sd->grid.h - 2;
|
||||
|
||||
|
@ -2284,7 +2278,7 @@ _smart_cb_key_down(void *data, Evas *e EINA_UNUSED,
|
|||
}
|
||||
else goto end;
|
||||
}
|
||||
keyin_handle(sd->pty, ev);
|
||||
keyin_handle(sd->pty, ev, alt, shift, ctrl);
|
||||
end:
|
||||
if (sd->config->flicker_on_key)
|
||||
edje_object_signal_emit(sd->cursor.obj, "key,down", "terminology");
|
||||
|
|
Loading…
Reference in New Issue