summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJiayi Zhao <jeff.no.zhao@gmail.com>2020-04-29 10:43:22 -0400
committerJiayi Zhao <jeff.no.zhao@gmail.com>2020-04-29 10:43:22 -0400
commite99f25b7d1e6c55fbfc59c6654f00de68e7c96ea (patch)
tree00c0fa7bea99f942016a3a7db29135a5a5e98262 /src
parent3fa40b654a96df76f445da7da3a35bce69730ca8 (diff)
fix issue with text paste not working in textfield
Diffstat (limited to 'src')
-rw-r--r--src/ui/widgets/tui_menu.rs4
-rw-r--r--src/ui/widgets/tui_prompt.rs3
-rw-r--r--src/ui/widgets/tui_textfield.rs7
-rw-r--r--src/util/event.rs25
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)) {