@@ -70,7 +70,22 @@ def get_options(self):
7070 symbol = " " if choice == GLOBAL_OTHER_CHOICE else " " * len (self .theme .List .selection_cursor )
7171 yield choice , symbol , color
7272
73+ def _get_current_choice (self ):
74+ return self .question .choices [self .current ]
75+
7376 def process_input (self , pressed ):
77+ prev_choice = self ._get_current_choice ()
78+
79+ self ._process_control_input (pressed )
80+
81+ self ._process_text_input (pressed )
82+
83+ current_choice = self ._get_current_choice ()
84+ if prev_choice != current_choice :
85+ if self .question .choice_callback :
86+ self .question .choice_callback (current_choice )
87+
88+ def _process_control_input (self , pressed ):
7489 question = self .question
7590 if pressed == key .UP :
7691 if question .carousel and self .current == 0 :
@@ -85,7 +100,7 @@ def process_input(self, pressed):
85100 self .current = min (len (self .question .choices ) - 1 , self .current + 1 )
86101 return
87102 if pressed == key .ENTER :
88- value = self .question . choices [ self . current ]
103+ value = self ._get_current_choice ()
89104
90105 if value == GLOBAL_OTHER_CHOICE :
91106 value = self .other_input ()
@@ -99,10 +114,7 @@ def process_input(self, pressed):
99114 if pressed == key .CTRL_C :
100115 raise KeyboardInterrupt ()
101116
102- # Add text processing
103- self ._process_text (pressed )
104-
105- def _process_text (self , pressed ):
117+ def _process_text_input (self , pressed ):
106118 prev_text = self .current_text
107119
108120 if pressed == key .TAB and self .question .autocomplete :
0 commit comments