linux: Primary clipboard (#10534)

Implements copying from and pasting to the primary selection.

Release Notes:

- N/A
This commit is contained in:
apricotbucket28
2024-04-18 14:54:18 -07:00
committed by GitHub
parent 98db7fa61e
commit b31df39ab0
13 changed files with 173 additions and 16 deletions
+10
View File
@@ -23,6 +23,7 @@ pub(crate) struct TestPlatform {
active_display: Rc<dyn PlatformDisplay>,
active_cursor: Mutex<CursorStyle>,
current_clipboard_item: Mutex<Option<ClipboardItem>>,
current_primary_item: Mutex<Option<ClipboardItem>>,
pub(crate) prompts: RefCell<TestPrompts>,
pub opened_url: RefCell<Option<String>>,
weak: Weak<Self>,
@@ -44,6 +45,7 @@ impl TestPlatform {
active_display: Rc::new(TestDisplay::new()),
active_window: Default::default(),
current_clipboard_item: Mutex::new(None),
current_primary_item: Mutex::new(None),
weak: weak.clone(),
opened_url: Default::default(),
})
@@ -282,10 +284,18 @@ impl Platform for TestPlatform {
false
}
fn write_to_primary(&self, item: ClipboardItem) {
*self.current_primary_item.lock() = Some(item);
}
fn write_to_clipboard(&self, item: ClipboardItem) {
*self.current_clipboard_item.lock() = Some(item);
}
fn read_from_primary(&self) -> Option<ClipboardItem> {
self.current_primary_item.lock().clone()
}
fn read_from_clipboard(&self) -> Option<ClipboardItem> {
self.current_clipboard_item.lock().clone()
}