diff options
author | Jiayi Zhao <jeff.no.zhao@gmail.com> | 2020-04-29 10:43:22 -0400 |
---|---|---|
committer | Jiayi Zhao <jeff.no.zhao@gmail.com> | 2020-04-29 10:43:22 -0400 |
commit | e99f25b7d1e6c55fbfc59c6654f00de68e7c96ea (patch) | |
tree | 00c0fa7bea99f942016a3a7db29135a5a5e98262 | |
parent | 3fa40b654a96df76f445da7da3a35bce69730ca8 (diff) |
fix issue with text paste not working in textfield
-rw-r--r-- | src/ui/widgets/tui_menu.rs | 4 | ||||
-rw-r--r-- | src/ui/widgets/tui_prompt.rs | 3 | ||||
-rw-r--r-- | src/ui/widgets/tui_textfield.rs | 7 | ||||
-rw-r--r-- | src/util/event.rs | 25 |
4 files changed, 16 insertions, 23 deletions
diff --git a/src/ui/widgets/tui_menu.rs b/src/ui/widgets/tui_menu.rs index ce663af..cc9a700 100644 --- a/src/ui/widgets/tui_menu.rs +++ b/src/ui/widgets/tui_menu.rs @@ -119,9 +119,7 @@ const LONG_SPACE: &str = " impl<'a> Widget for TuiMenu<'a> { fn render(self, area: Rect, buf: &mut Buffer) { let text_iter = self.options.iter(); - let block = Block::default() - .borders(Borders::TOP) - .render(area, buf); + let block = Block::default().borders(Borders::TOP).render(area, buf); let style = Style::default(); diff --git a/src/ui/widgets/tui_prompt.rs b/src/ui/widgets/tui_prompt.rs index 2840d79..491c95c 100644 --- a/src/ui/widgets/tui_prompt.rs +++ b/src/ui/widgets/tui_prompt.rs @@ -46,8 +46,7 @@ impl<'a> TuiPrompt<'a> { height: 1, }; - frame.render_widget(Paragraph::new(text.iter()) - .wrap(true), textfield_rect); + frame.render_widget(Paragraph::new(text.iter()).wrap(true), textfield_rect); }); if let Ok(event) = context.events.next() { diff --git a/src/ui/widgets/tui_textfield.rs b/src/ui/widgets/tui_textfield.rs index 78f3b37..7d454fc 100644 --- a/src/ui/widgets/tui_textfield.rs +++ b/src/ui/widgets/tui_textfield.rs @@ -79,7 +79,6 @@ impl<'a> TuiTextField<'a> { let terminal = backend.terminal_mut(); loop { - let cursor_xpos = line_buffer.pos(); terminal .draw(|mut frame| { let f_size: Rect = frame.size(); @@ -110,8 +109,9 @@ impl<'a> TuiTextField<'a> { frame.render_widget(menu, rect); } - let cmd_prompt_style = Style::default().fg(Color::LightGreen); + let cursor_xpos = line_buffer.pos(); + let cmd_prompt_style = Style::default().fg(Color::LightGreen); let cursor_style = Style::default().modifier(Modifier::REVERSED); let prefix = &line_buffer.as_str()[..cursor_xpos]; @@ -141,8 +141,7 @@ impl<'a> TuiTextField<'a> { height: 1, }; - frame.render_widget(Paragraph::new(text.iter()) - .wrap(true), textfield_rect); + frame.render_widget(Paragraph::new(text.iter()).wrap(true), textfield_rect); }) .unwrap(); diff --git a/src/util/event.rs b/src/util/event.rs index 895dc56..ea68263 100644 --- a/src/util/event.rs +++ b/src/util/event.rs @@ -42,26 +42,23 @@ impl Events { { let event_tx = event_tx.clone(); thread::spawn(move || { - { - let stdin = io::stdin(); - let mut keys = stdin.keys(); - match keys.next() { - Some(key) => match key { - Ok(key) => { - if let Err(e) = event_tx.send(Event::Input(key)) { - eprintln!("Input thread send err: {:#?}", e); - return; - } + let stdin = io::stdin(); + let mut keys = stdin.keys(); + match keys.next() { + Some(key) => match key { + Ok(key) => { + if let Err(e) = event_tx.send(Event::Input(key)) { + eprintln!("Input thread send err: {:#?}", e); + return; } - _ => return, - }, + } _ => return, - } + }, + _ => return, } while let Ok(_) = input_rx.recv() { let stdin = io::stdin(); - let mut keys = stdin.keys(); if let Some(key) = keys.next() { if let Ok(key) = key { if let Err(e) = event_tx.send(Event::Input(key)) { |