--- a/tuikit/widgets/textbox.py Wed Sep 03 19:13:37 2014 +0200
+++ b/tuikit/widgets/textbox.py Wed Sep 03 19:14:43 2014 +0200
@@ -60,28 +60,38 @@
buffer.puts(line, 0, j)
#self.cursor = (self._spot.x, self._spot.y)
- def keypress(self, keyname, char, mod=0):
- if keyname:
- if keyname == 'left': self.move_left()
- if keyname == 'right': self.move_right()
- if keyname == 'home': self.move_home()
- if keyname == 'end': self.move_end()
- if keyname == 'up': self.move_up()
- if keyname == 'down': self.move_down()
- if keyname == 'pageup': self.move_pageup()
- if keyname == 'pagedown': self.move_pagedown()
- if keyname == 'backspace': self.backspace()
- if keyname == 'delete': self.del_char()
- if keyname == 'enter': self.add_newline(move=True)
- if mod == MOD_CTRL:
- if keyname == 'home': self.move_top()
- if keyname == 'end': self.move_bottom()
+ def keypress_event(self, ev):
+ if ev.keyname and not ev.mods:
+ consumed = True
+ if ev.keyname == 'left': self.move_left()
+ elif ev.keyname == 'right': self.move_right()
+ elif ev.keyname == 'home': self.move_home()
+ elif ev.keyname == 'end': self.move_end()
+ elif ev.keyname == 'up': self.move_up()
+ elif ev.keyname == 'down': self.move_down()
+ elif ev.keyname == 'pageup': self.move_pageup()
+ elif ev.keyname == 'pagedown': self.move_pagedown()
+ elif ev.keyname == 'backspace': self.backspace()
+ elif ev.keyname == 'delete': self.del_char()
+ elif ev.keyname == 'enter': self.add_newline(move=True)
+ else:
+ consumed = False
+ if consumed:
+ return True
+ if ev.mods:
+ consumed = True
+ mk = ev.mod_key()
+ if mk == 'ctrl+home': self.move_top()
+ elif mk == 'ctrl+end': self.move_bottom()
+ else:
+ consumed = False
+ if consumed:
+ return True
- if char:
- self.add_char(char)
+ if ev.char and not ev.keyname:
+ self.add_char(ev.char)
self.move_right()
-
- #self.redraw()
+ return True
def on_mousedown(self, ev):
y = ev.wy