aboutsummaryrefslogtreecommitdiff
path: root/src/event.rs
diff options
context:
space:
mode:
authorGris Ge <fge@redhat.com>2018-09-24 20:12:45 +0800
committerChristian Duerr <chrisduerr@users.noreply.github.com>2018-09-24 12:12:45 +0000
commita752066bfa281f236b8d171cbc8f6e5a5a940297 (patch)
tree55eeaac39f64e16fcf545639d89e14ce913741c9 /src/event.rs
parentcd79680ba23b3d9c22372c95fa53dec5b4ea7c8e (diff)
downloadalacritty-a752066bfa281f236b8d171cbc8f6e5a5a940297.tar.gz
alacritty-a752066bfa281f236b8d171cbc8f6e5a5a940297.zip
Allow copying selection to primary clipboard
A new configuration option `save_to_clipboard` has been added to the `selection` section of the configuration. This allows writing every selection to the primary system clipboard when it is set to `true`. On linux the selection is still written to the selection clipboard, independent of the value of the `save_to_clipboard` setting.
Diffstat (limited to 'src/event.rs')
-rw-r--r--src/event.rs8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/event.rs b/src/event.rs
index ec17034f..da63d5fd 100644
--- a/src/event.rs
+++ b/src/event.rs
@@ -8,7 +8,7 @@ use std::time::{Instant};
use serde_json as json;
use parking_lot::MutexGuard;
use glutin::{self, ModifiersState, Event, ElementState};
-use copypasta::{Clipboard, Load, Store};
+use copypasta::{Clipboard, Load, Store, Buffer as ClipboardBuffer};
use ansi::{Handler, ClearMode};
use grid::Scroll;
@@ -64,7 +64,7 @@ impl<'a, N: Notify + 'a> input::ActionContext for ActionContext<'a, N> {
self.terminal.clear_screen(ClearMode::Saved);
}
- fn copy_selection(&self, buffer: ::copypasta::Buffer) {
+ fn copy_selection(&self, buffer: ClipboardBuffer) {
if let Some(selected) = self.terminal.selection_to_string() {
if !selected.is_empty() {
Clipboard::new()
@@ -238,6 +238,7 @@ pub struct Processor<N> {
last_modifiers: ModifiersState,
pending_events: Vec<Event>,
window_changes: WindowChanges,
+ save_to_clipboard: bool,
}
/// Notify that the terminal was resized
@@ -281,6 +282,7 @@ impl<N: Notify> Processor<N> {
last_modifiers: Default::default(),
pending_events: Vec::with_capacity(4),
window_changes: Default::default(),
+ save_to_clipboard: config.selection().save_to_clipboard,
}
}
@@ -442,6 +444,7 @@ impl<N: Notify> Processor<N> {
mouse_config: &self.mouse_config,
key_bindings: &self.key_bindings[..],
mouse_bindings: &self.mouse_bindings[..],
+ save_to_clipboard: self.save_to_clipboard,
};
let mut window_is_focused = window.is_focused;
@@ -496,5 +499,6 @@ impl<N: Notify> Processor<N> {
self.key_bindings = config.key_bindings().to_vec();
self.mouse_bindings = config.mouse_bindings().to_vec();
self.mouse_config = config.mouse().to_owned();
+ self.save_to_clipboard = config.selection().save_to_clipboard;
}
}