diff options
author | Florent Le Coz <louiz@louiz.org> | 2011-02-15 20:25:32 +0100 |
---|---|---|
committer | Florent Le Coz <louiz@louiz.org> | 2011-02-15 20:25:32 +0100 |
commit | 36094c15cf49d0a210a817c6d2f729d99fdc9c3a (patch) | |
tree | 906cbdb4faf94021561016c3fa6cbeef615c3b29 | |
parent | 690d4495605d8b5820eac3f3c88af1a82c93f248 (diff) | |
download | poezio-36094c15cf49d0a210a817c6d2f729d99fdc9c3a.tar.gz poezio-36094c15cf49d0a210a817c6d2f729d99fdc9c3a.tar.bz2 poezio-36094c15cf49d0a210a817c6d2f729d99fdc9c3a.tar.xz poezio-36094c15cf49d0a210a817c6d2f729d99fdc9c3a.zip |
Keyboard can now read all shortcuts with Ctrl (e.g Ctrl+left)
Any unicode character is accepted after the meta key
The meta key can be concatened until a non-meta key is pressed
(e.g M-M-M-M-M-M-M-M-e)
-rw-r--r-- | src/keyboard.py | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/keyboard.py b/src/keyboard.py index 09652c4c..188e65eb 100644 --- a/src/keyboard.py +++ b/src/keyboard.py @@ -50,10 +50,12 @@ def read_char(s): if first <= 26: # transform Ctrl+* keys return "^"+chr(first + 64) if first == 27: - (first, c) = get_next_byte(s) - if not isinstance(first, int): - return None - return "M-"+chr(first) + second = read_char(s) + res = 'M-%s' % (second,) + if second == '[': + for i in range(4): + res += read_char(s) + return res if 194 <= first: (code, c) = get_next_byte(s) # 2 bytes char char += c @@ -71,6 +73,10 @@ def read_char(s): if __name__ == '__main__': import curses s = curses.initscr() + curses.curs_set(1) + curses.noecho() + curses.nonl() + s.keypad(True) curses.noecho() while True: s.addstr('%s\n' % read_char(s)) |