diff options
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); + } } |