diff options
Diffstat (limited to 'src/app')
| -rw-r--r-- | src/app/actions.rs | 3 | ||||
| -rw-r--r-- | src/app/mod.rs | 7 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/app/actions.rs b/src/app/actions.rs index da5c8698..fcdeff92 100644 --- a/src/app/actions.rs +++ b/src/app/actions.rs @@ -518,6 +518,9 @@ impl AppState { .update_pane_state(pane_id, |pane| pane.release_agent(&source, agent)) .into_iter() .collect(), + // Intercepted in App::handle_internal_event before reaching this + // dispatch; never touches AppState. + AppEvent::ClipboardWrite { .. } => Vec::new(), } } diff --git a/src/app/mod.rs b/src/app/mod.rs index 3e79ce05..266baa59 100644 --- a/src/app/mod.rs +++ b/src/app/mod.rs @@ -784,6 +784,13 @@ impl App { } fn handle_internal_event(&mut self, ev: AppEvent) { + if let AppEvent::ClipboardWrite { bytes } = ev { + use std::io::Write; + let _ = std::io::stdout().write_all(&bytes); + let _ = std::io::stdout().flush(); + return; + } + if let AppEvent::PaneDied { pane_id } = &ev { if let Some((ws_idx, _)) = self.find_pane(*pane_id) { if let Some(public_pane_id) = self.public_pane_id(ws_idx, *pane_id) { |
