diff --git a/src/pyj/complete.pyj b/src/pyj/complete.pyj index 6d944ef6de..1fc0f7ffb9 100644 --- a/src/pyj/complete.pyj +++ b/src/pyj/complete.pyj @@ -37,6 +37,11 @@ class EditWithComplete: event.preventDefault(), event.stopPropagation() return if event.key is 'Enter': + if self.completion_popup.is_visible: + if self.apply_completion(self.completion_popup.current_text): + self.completion_popup.hide() + event.preventDefault(), event.stopPropagation() + return if self.onenterkey: event.preventDefault(), event.stopPropagation() self.onenterkey() @@ -47,6 +52,12 @@ class EditWithComplete: else: self.completion_popup.move_highlight() event.preventDefault(), event.stopPropagation() + elif event.key is 'ArrowDown': + ti = self.text_input + if not ti.value: + self.completion_popup.set_query('') + self.completion_popup.popup(ti) + event.preventDefault(), event.stopPropagation() def oninput(self, event): ti = self.text_input diff --git a/src/pyj/popups.pyj b/src/pyj/popups.pyj index 1ebde631f8..14831d5920 100644 --- a/src/pyj/popups.pyj +++ b/src/pyj/popups.pyj @@ -93,7 +93,7 @@ class CompletionPopup: def set_all_items(self, items): self.items = list(items) self.matches = [] - self.applied_query = '' + self.applied_query = None def add_associated_widget(self, widget_or_id): if jstype(widget_or_id) is not 'string':