aboutsummaryrefslogtreecommitdiff
path: root/src/app
diff options
context:
space:
mode:
Diffstat (limited to 'src/app')
-rw-r--r--src/app/actions.rs3
-rw-r--r--src/app/mod.rs7
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) {