on master help sign in
Prompt needs to close on enter.
f92998aBlaž Hrastnik
helix-term/src/ui/prompt.rs+10−5
@@ -151,6 +151,11 @@ impl Component for Prompt {
151 _ => return EventResult::Ignored,
151 _ => return EventResult::Ignored,
152 };
152 };
153
153
154+ let close_fn = EventResult::Consumed(Some(Box::new(|compositor: &mut Compositor| {
155+ // remove the layer
156+ compositor.pop();
157+ })));
158+
154 match event {
159 match event {
155 KeyEvent {
160 KeyEvent {
156 code: KeyCode::Char(c),
161 code: KeyCode::Char(c),
@@ -159,10 +164,7 @@ impl Component for Prompt {
159 KeyEvent {
164 KeyEvent {
160 code: KeyCode::Esc, ..
165 code: KeyCode::Esc, ..
161 } => {
166 } => {
162− return EventResult::Consumed(Some(Box::new(|compositor: &mut Compositor| {
167+ return close_fn;
163− // remove the layer
164− compositor.pop();
165− })));
166 }
168 }
167 KeyEvent {
169 KeyEvent {
168 code: KeyCode::Right,
170 code: KeyCode::Right,
@@ -187,7 +189,10 @@ impl Component for Prompt {
187 KeyEvent {
189 KeyEvent {
188 code: KeyCode::Enter,
190 code: KeyCode::Enter,
189 ..
191 ..
192+ } => {
190− } => (self.callback_fn)(cx.editor, &self.line),
193+ (self.callback_fn)(cx.editor, &self.line);
194+ return close_fn;
195+ }
191 KeyEvent {
196 KeyEvent {
192 code: KeyCode::Tab, ..
197 code: KeyCode::Tab, ..
193 } => self.change_completion_selection(),
198 } => self.change_completion_selection(),