diff options
author | 2013-04-08 23:14:48 -0400 | |
---|---|---|
committer | 2013-04-08 23:14:48 -0400 | |
commit | e8c201b14c90deb703a9b3ace74f6189fe429e39 (patch) | |
tree | fba114fde480bccab4b3686a8673a625589e24b3 /src/textadept.c | |
parent | 349cc6da144cd6faafa1b7d65c955c513abafdd2 (diff) | |
download | textadept-e8c201b14c90deb703a9b3ace74f6189fe429e39.tar.gz textadept-e8c201b14c90deb703a9b3ace74f6189fe429e39.zip |
Make "command_entry_keypress" event more consistent with "keypress" in curses.
Diffstat (limited to 'src/textadept.c')
-rw-r--r-- | src/textadept.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/textadept.c b/src/textadept.c index 6a41b5a2..1e913aae 100644 --- a/src/textadept.c +++ b/src/textadept.c @@ -554,7 +554,13 @@ static int c_keypress(EObjectType _, void *object, void *data, chtype key) { if (key == KEY_ENTER) { fcopy(&command_text, getCDKEntryValue((CDKENTRY *)object)); ret = lL_event(lua, "command_entry_command", LUA_TSTRING, command_text, -1); - } else ret = !lL_event(lua, "command_entry_keypress", LUA_TNUMBER, key, -1); + } else { + int ctrl = key < 0x20 && key != 9 && key != 10 && key != 13 && key != 27; + if (ctrl) key = tolower(key ^ 0x40); + // TODO: F1-F12. + ret = !lL_event(lua, "command_entry_keypress", LUA_TNUMBER, key, + LUA_TBOOLEAN, FALSE, LUA_TBOOLEAN, ctrl, -1); + } scintilla_refresh(focused_view), drawCDKEntry((CDKENTRY *)object, FALSE); return key == KEY_TAB || ret; } @@ -2385,9 +2391,9 @@ int main(int argc, char **argv) { else if (key.type == TERMKEY_TYPE_KEYSYM && key.code.sym >= 0 && key.code.sym <= TERMKEY_SYM_END) c = keysyms[key.code.sym]; - shift = (key.modifiers & TERMKEY_KEYMOD_SHIFT) ? TRUE : FALSE; - ctrl = (key.modifiers & TERMKEY_KEYMOD_CTRL) ? TRUE : FALSE; - alt = (key.modifiers & TERMKEY_KEYMOD_ALT) ? TRUE : FALSE; + shift = key.modifiers & TERMKEY_KEYMOD_SHIFT; + ctrl = key.modifiers & TERMKEY_KEYMOD_CTRL; + alt = key.modifiers & TERMKEY_KEYMOD_ALT; #endif if (!lL_event(lua, "keypress", LUA_TNUMBER, c, LUA_TBOOLEAN, shift, LUA_TBOOLEAN, ctrl, LUA_TBOOLEAN, alt, -1)) |