From 1412485b6dec2837ead4b513e502bc9d139f105c Mon Sep 17 00:00:00 2001 From: Tom Hacohen Date: Mon, 18 Jun 2012 08:07:41 +0000 Subject: [PATCH] Terminology: Support CTRL+Arrow sequences. SVN revision: 72368 --- src/bin/keyin.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/bin/keyin.c b/src/bin/keyin.c index 034ff603..f8ec0e64 100644 --- a/src/bin/keyin.c +++ b/src/bin/keyin.c @@ -37,6 +37,16 @@ static const Keyout appcur_keyout[] = KEY(NULL, "END") }; +static const Keyout ctrl_keyout[] = +{ + KEY("Left", "\033[1;5D"), + KEY("Right", "\033[1;5C"), + KEY("Up", "\033[1;5A"), + KEY("Down", "\033[1;5B"), + + KEY(NULL, "END") +}; + static const Keyout keyout[] = { KEY("BackSpace", "\177"), @@ -184,7 +194,6 @@ keyin_handle(Termpty *ty, Evas_Event_Key_Down *ev) { if (_key_try(ty, appcur_keyout, ev)) return; } - if (_key_try(ty, keyout, ev)) return; if ( ((ty->state.alt_kp) && (evas_key_modifier_is_set(ev->modifiers, "Shift"))) || @@ -209,7 +218,12 @@ 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")) + { + if (_key_try(ty, ctrl_keyout, ev)) return; + } } + if (_key_try(ty, keyout, ev)) return; if (ev->string) { if ((ev->string[0]) && (!ev->string[1]))