tuikit/widgets/textfield.py
changeset 109 105b1affc3c2
parent 97 0c2e0c09ba5c
child 110 cf3d49cdd6e2
--- a/tuikit/widgets/textfield.py	Fri Mar 28 19:58:59 2014 +0100
+++ b/tuikit/widgets/textfield.py	Wed Sep 03 19:08:21 2014 +0200
@@ -7,10 +7,9 @@
 
     def __init__(self, value=''):
         Widget.__init__(self)
+        self.allow_focus = True
         self.sizereq.update(10, 1)
 
-        self.allow_focus = True
-
         self.code = locale.getpreferredencoding()
         if not isinstance(value, str):
             value = str(value, self.code)
@@ -25,11 +24,9 @@
     def resize(self, w, h):
         self.tw = self.width - 2
 
-    def set_theme(self, theme):
-        self.color = theme.normal
-
     def draw(self, buffer):
-        with buffer.attr(self.color):
+        color = self.theme.active if self.has_focus() else self.theme.normal
+        with buffer.attr(color):
             # draw value
             val = self.value + ' ' * self.tw         # add spaces to fill rest of field
             val = val[self.ofs : self.ofs + self.tw]  # cut value - begin from ofs, limit to tw chars
@@ -49,8 +46,7 @@
             self._cursor = (1 + self.curspos - self.ofs, 0)
 
     def keypress(self, keyname, char, mod=0):
-        Widget.keypress(self, keyname, char, mod)
-        accepted = True
+        consumed = True
         if keyname == 'left':
             self.move_left()
         elif keyname == 'right':
@@ -62,16 +58,17 @@
         elif keyname == 'delete':
             self.del_char()
         else:
-            accepted = False
+            consumed = False
 
         if char:
             self.add_char(char)
             self.move_right()
-            accepted = True
+            consumed = True
 
-        #if accepted:
+        if consumed:
             #self.redraw()
-        return accepted
+            return True
+        Widget.keypress(self, keyname, char, mod)
 
     def move_left(self):
         if self.curspos - self.ofs > 1 or (self.ofs == 0 and self.curspos == 1):