diff options
author | 2024-02-07 17:25:40 +0100 | |
---|---|---|
committer | 2024-02-13 03:14:30 +0100 | |
commit | 4155edab8d123b767ddad67e24ca2d4c50f31ece (patch) | |
tree | 30c81bc419920dd2e425f05caf160377b85ca961 /winit/src/clipboard.rs | |
parent | 7615b2240c360fea21ef041bfd5b1deb73fc03d1 (diff) | |
download | iced-4155edab8d123b767ddad67e24ca2d4c50f31ece.tar.gz iced-4155edab8d123b767ddad67e24ca2d4c50f31ece.tar.bz2 iced-4155edab8d123b767ddad67e24ca2d4c50f31ece.zip |
Add support for primary clipboard
Diffstat (limited to 'winit/src/clipboard.rs')
-rw-r--r-- | winit/src/clipboard.rs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/winit/src/clipboard.rs b/winit/src/clipboard.rs index 8f5c5e63..a1496fa3 100644 --- a/winit/src/clipboard.rs +++ b/winit/src/clipboard.rs @@ -52,6 +52,32 @@ impl Clipboard { State::Unavailable => {} } } + + /// Reads the current content of primary as text. + pub fn read_primary(&self) -> Option<String> { + match &self.state { + State::Connected(clipboard) => { + clipboard.read_primary().and_then(|r| r.ok()) + } + State::Unavailable => None, + } + } + + /// Writes the given text contents to primary. + pub fn write_primary(&mut self, contents: String) { + match &mut self.state { + State::Connected(clipboard) => { + match clipboard.write_primary(contents) { + Some(Ok(())) => {} + Some(Err(error)) => { + log::warn!("error writing to primary: {error}"); + } + None => {} + } + } + State::Unavailable => {} + } + } } impl crate::core::Clipboard for Clipboard { @@ -62,4 +88,12 @@ impl crate::core::Clipboard for Clipboard { fn write(&mut self, contents: String) { self.write(contents); } + + fn read_primary(&self) -> Option<String> { + self.read_primary() + } + + fn write_primary(&mut self, contents: String) { + self.write_primary(contents); + } } |