Преглед на файлове

Fix TAB key on pop up causing crash

Daniel Sheffield преди 3 години
родител
ревизия
0212d91fcb
променени са 1 файла, в които са добавени 13 реда и са изтрити 4 реда
  1. 13 4
      grocery_transactions.py

+ 13 - 4
grocery_transactions.py

@@ -322,7 +322,6 @@ class AutoCompleteEdit(urwid.Edit):
         
         return super(AutoCompleteEdit, self).keypress(size, key)
 
-        self.apply(self.name)
 
 class AutoCompleteFloatEdit(numedit.FloatEdit):
     def __init__(self, name, *args, apply_change_func=None, **kwargs):
@@ -448,6 +447,7 @@ class GroceryTransactionEditor(urwid.WidgetPlaceholder):
 
     def advance_focus(self, reverse=False):
         container = self.original_widget.original_widget.original_widget
+
         path = container.get_focus_path()
         if reverse:
             paths = [ i for i in self.iter_focus_paths() ]
@@ -485,6 +485,9 @@ class GroceryTransactionEditor(urwid.WidgetPlaceholder):
         if isinstance(key, tuple):
             return
         
+        if getattr(self.original_widget.original_widget, 'original_widget', None) is None:
+            return super(GroceryTransactionEditor, self).keypress(size, key)
+        
         if key == 'tab':
             self.advance_focus()
         elif key == 'shift tab':
@@ -564,9 +567,15 @@ class GroceryTransactionEditor(urwid.WidgetPlaceholder):
             valign='middle', height=('relative', 60),
             min_width=20, min_height=9)
         def keypress(size, key, original=top.keypress):
-            if key != 'esc':
-                return original(size, key)
-            self.show('transaction')
+            if key == 'esc':
+                self.show('transaction')
+                return
+
+            if key == 'tab':
+                return
+
+            return original(size, key)
+
         top.keypress = keypress
         return urwid.AttrMap(top, 'banner')