aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/input.rs31
1 files changed, 20 insertions, 11 deletions
diff --git a/src/input.rs b/src/input.rs
index 09349f04..058cbc0e 100644
--- a/src/input.rs
+++ b/src/input.rs
@@ -156,25 +156,34 @@ impl Action {
}
}
},
- Action::Paste |
+ Action::Paste => {
+ Clipboard::new()
+ .and_then(|clipboard| clipboard.load_primary() )
+ .map(|contents| { self.paste(ctx, contents) })
+ .unwrap_or_else(|err| {
+ err_println!("Error loading data from clipboard. {}", Red(err));
+ });
+ },
Action::PasteSelection => {
Clipboard::new()
- .and_then(|clipboard| clipboard.load_selection())
- .map(|contents| {
- if ctx.terminal.mode().contains(mode::BRACKETED_PASTE) {
- ctx.notifier.notify(&b"\x1b[200~"[..]);
- ctx.notifier.notify(contents.into_bytes());
- ctx.notifier.notify(&b"\x1b[201~"[..]);
- } else {
- ctx.notifier.notify(contents.into_bytes());
- }
- })
+ .and_then(|clipboard| clipboard.load_selection() )
+ .map(|contents| { self.paste(ctx, contents) })
.unwrap_or_else(|err| {
warn!("Error loading data from clipboard. {}", Red(err));
});
},
}
}
+
+ fn paste<'a, N: Notify>(&self, ctx: &mut ActionContext<'a, N>, contents: String) {
+ if ctx.terminal.mode().contains(mode::BRACKETED_PASTE) {
+ ctx.notifier.notify(&b"\x1b[200~"[..]);
+ ctx.notifier.notify(contents.into_bytes());
+ ctx.notifier.notify(&b"\x1b[201~"[..]);
+ } else {
+ ctx.notifier.notify(contents.into_bytes());
+ }
+ }
}
impl From<&'static str> for Action {