summaryrefslogtreecommitdiffstats
path: root/winit/src/settings.rs
diff options
context:
space:
mode:
Diffstat (limited to 'winit/src/settings.rs')
-rw-r--r--winit/src/settings.rs23
1 files changed, 23 insertions, 0 deletions
diff --git a/winit/src/settings.rs b/winit/src/settings.rs
index 743f79bc..72a1a24a 100644
--- a/winit/src/settings.rs
+++ b/winit/src/settings.rs
@@ -16,6 +16,12 @@ use winit::window::WindowBuilder;
/// The settings of an application.
#[derive(Debug, Clone, Default)]
pub struct Settings<Flags> {
+ /// The identifier of the application.
+ ///
+ /// If provided, this identifier may be used to identify the application or
+ /// communicate with it through the windowing system.
+ pub id: Option<String>,
+
/// The [`Window`] settings
pub window: Window,
@@ -70,6 +76,7 @@ impl Window {
title: &str,
mode: Mode,
primary_monitor: Option<MonitorHandle>,
+ _id: Option<String>,
) -> WindowBuilder {
let mut window_builder = WindowBuilder::new();
@@ -103,6 +110,21 @@ impl Window {
.with_max_inner_size(winit::dpi::LogicalSize { width, height });
}
+ #[cfg(any(
+ target_os = "linux",
+ target_os = "dragonfly",
+ target_os = "freebsd",
+ target_os = "netbsd",
+ target_os = "openbsd"
+ ))]
+ {
+ use ::winit::platform::unix::WindowBuilderExtUnix;
+
+ if let Some(id) = _id {
+ window_builder = window_builder.with_app_id(id);
+ }
+ }
+
#[cfg(target_os = "windows")]
{
use winit::platform::windows::WindowBuilderExtWindows;
@@ -110,6 +132,7 @@ impl Window {
if let Some(parent) = self.platform_specific.parent {
window_builder = window_builder.with_parent_window(parent);
}
+
window_builder = window_builder
.with_drag_and_drop(self.platform_specific.drag_and_drop);
}