From 08d2014cfea1583059338a338bc4d5f632763fdb Mon Sep 17 00:00:00 2001 From: Aram Drevekenin Date: Wed, 16 Mar 2022 09:42:48 +0100 Subject: [PATCH] hotfix: do not send bracketed paste to panes where it is not on --- zellij-client/src/input_handler.rs | 4 ++++ zellij-client/src/stdin_handler.rs | 4 +--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/zellij-client/src/input_handler.rs b/zellij-client/src/input_handler.rs index 58d060bf..020c5516 100644 --- a/zellij-client/src/input_handler.rs +++ b/zellij-client/src/input_handler.rs @@ -63,6 +63,8 @@ impl InputHandler { let mut err_ctx = OPENCALLS.with(|ctx| *ctx.borrow()); err_ctx.add_call(ContextType::StdinHandler); let alt_left_bracket = vec![27, 91]; + let bracketed_paste_start = vec![27, 91, 50, 48, 48, 126]; // \u{1b}[200~ + let bracketed_paste_end = vec![27, 91, 50, 48, 49, 126]; // \u{1b}[201~ if self.options.mouse_mode.unwrap_or(true) { self.os_input.enable_mouse(); } @@ -97,7 +99,9 @@ impl InputHandler { } Ok((InputInstruction::PastedText(raw_bytes), _error_context)) => { if self.mode == InputMode::Normal || self.mode == InputMode::Locked { + self.dispatch_action(Action::Write(bracketed_paste_start.clone())); self.dispatch_action(Action::Write(raw_bytes)); + self.dispatch_action(Action::Write(bracketed_paste_end.clone())); } } Ok((InputInstruction::SwitchToMode(input_mode), _error_context)) => { diff --git a/zellij-client/src/stdin_handler.rs b/zellij-client/src/stdin_handler.rs index 965100f8..778a9029 100644 --- a/zellij-client/src/stdin_handler.rs +++ b/zellij-client/src/stdin_handler.rs @@ -19,12 +19,10 @@ pub(crate) fn stdin_loop( if key_event == bracketed_paste_start { pasting = true; - pasted_text.append(&mut raw_bytes); continue; } else if pasting && key_event == bracketed_paste_end { pasting = false; - let mut pasted_text: Vec = pasted_text.drain(..).collect(); - pasted_text.append(&mut raw_bytes); + let pasted_text: Vec = pasted_text.drain(..).collect(); send_input_instructions .send(InputInstruction::PastedText(pasted_text)) .unwrap();