diff options
author | 2024-09-03 11:23:54 +0200 | |
---|---|---|
committer | 2024-09-03 11:23:54 +0200 | |
commit | 9628dc20d5dab128b9fff2c4b73cc66b0071e149 (patch) | |
tree | 65053c9982f454b1ecab50e2dad0817e5b135d77 /winit/src/clipboard.rs | |
parent | 9957481d416f948f6af228013caa221a877c4db4 (diff) | |
download | iced-9628dc20d5dab128b9fff2c4b73cc66b0071e149.tar.gz iced-9628dc20d5dab128b9fff2c4b73cc66b0071e149.tar.bz2 iced-9628dc20d5dab128b9fff2c4b73cc66b0071e149.zip |
Reconnect `Clipboard` on window close
Fixes #2564
Diffstat (limited to '')
-rw-r--r-- | winit/src/clipboard.rs | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/winit/src/clipboard.rs b/winit/src/clipboard.rs index 7ae646fc..d54a1fe0 100644 --- a/winit/src/clipboard.rs +++ b/winit/src/clipboard.rs @@ -2,7 +2,7 @@ use crate::core::clipboard::Kind; use std::sync::Arc; -use winit::window::Window; +use winit::window::{Window, WindowId}; /// A buffer for short-term storage and transfer within and between /// applications. @@ -83,6 +83,14 @@ impl Clipboard { State::Unavailable => {} } } + + /// Returns the identifier of the window used to create the [`Clipboard`], if any. + pub fn window_id(&self) -> Option<WindowId> { + match &self.state { + State::Connected { window, .. } => Some(window.id()), + State::Unavailable => None, + } + } } impl crate::core::Clipboard for Clipboard { |