diff --git a/src/command/client/search/interactive.rs b/src/command/client/search/interactive.rs index c1d1c17..ed57a3f 100644 --- a/src/command/client/search/interactive.rs +++ b/src/command/client/search/interactive.rs @@ -114,6 +114,7 @@ impl State { match input { Event::Key(k) => self.handle_key_input(settings, k, len), Event::Mouse(m) => self.handle_mouse_input(*m, len), + Event::Paste(d) => self.handle_paste_input(d), _ => None, } } @@ -133,6 +134,13 @@ impl State { None } + fn handle_paste_input(&mut self, input: &str) -> Option { + for i in input.chars() { + self.search.input.insert(i); + } + None + } + #[allow(clippy::too_many_lines)] fn handle_key_input( &mut self, @@ -451,7 +459,8 @@ impl Stdout { execute!( stdout, terminal::EnterAlternateScreen, - event::EnableMouseCapture + event::EnableMouseCapture, + event::EnableBracketedPaste )?; Ok(Self { stdout }) } @@ -462,7 +471,8 @@ impl Drop for Stdout { execute!( self.stdout, terminal::LeaveAlternateScreen, - event::DisableMouseCapture + event::DisableMouseCapture, + event::DisableBracketedPaste ) .unwrap(); terminal::disable_raw_mode().unwrap();