summaryrefslogtreecommitdiffstats
path: root/winit/src/clipboard.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-09-03 11:23:54 +0200
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-09-03 11:23:54 +0200
commit9628dc20d5dab128b9fff2c4b73cc66b0071e149 (patch)
tree65053c9982f454b1ecab50e2dad0817e5b135d77 /winit/src/clipboard.rs
parent9957481d416f948f6af228013caa221a877c4db4 (diff)
downloadiced-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.rs10
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 {