summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón <hector0193@gmail.com>2021-08-11 20:15:49 +0700
committerLibravatar GitHub <noreply@github.com>2021-08-11 20:15:49 +0700
commit3d640632f124294218442b2494282603a6f2919c (patch)
treebb4881a08b483bca5b356f8d2c1aac7c454c8352
parent45778ed598c0d202f8e86c47a444fd671fb3abce (diff)
parent7337ab63bc9e167116f8adbfedb5a8e8203a4a5b (diff)
downloadiced-3d640632f124294218442b2494282603a6f2919c.tar.gz
iced-3d640632f124294218442b2494282603a6f2919c.tar.bz2
iced-3d640632f124294218442b2494282603a6f2919c.zip
Merge pull request #599 from oknozor/wayland-app-id
Add wayland app_id
-rw-r--r--glutin/src/application.rs1
-rw-r--r--src/settings.rs13
-rw-r--r--winit/src/application.rs1
-rw-r--r--winit/src/settings.rs23
4 files changed, 36 insertions, 2 deletions
diff --git a/glutin/src/application.rs b/glutin/src/application.rs
index 7ed6315d..4a5f4bd2 100644
--- a/glutin/src/application.rs
+++ b/glutin/src/application.rs
@@ -58,6 +58,7 @@ where
&application.title(),
application.mode(),
event_loop.primary_monitor(),
+ settings.id,
)
.with_menu(Some(conversion::menu(&application.menu())));
diff --git a/src/settings.rs b/src/settings.rs
index 480bf813..d726dc4f 100644
--- a/src/settings.rs
+++ b/src/settings.rs
@@ -4,12 +4,18 @@ use crate::window;
/// The settings of an application.
#[derive(Debug, Clone)]
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.
///
/// They will be ignored on the Web.
pub window: window::Settings,
- /// The data needed to initialize an [`Application`].
+ /// The data needed to initialize the [`Application`].
///
/// [`Application`]: crate::Application
pub flags: Flags,
@@ -58,6 +64,7 @@ impl<Flags> Settings<Flags> {
Self {
flags,
+ id: default_settings.id,
window: default_settings.window,
default_font: default_settings.default_font,
default_text_size: default_settings.default_text_size,
@@ -74,8 +81,9 @@ where
{
fn default() -> Self {
Self {
- flags: Default::default(),
+ id: None,
window: Default::default(),
+ flags: Default::default(),
default_font: Default::default(),
default_text_size: 20,
text_multithreading: false,
@@ -89,6 +97,7 @@ where
impl<Flags> From<Settings<Flags>> for iced_winit::Settings<Flags> {
fn from(settings: Settings<Flags>) -> iced_winit::Settings<Flags> {
iced_winit::Settings {
+ id: settings.id,
window: settings.window.into(),
flags: settings.flags,
exit_on_close_request: settings.exit_on_close_request,
diff --git a/winit/src/application.rs b/winit/src/application.rs
index 1d32a5f3..c43eed11 100644
--- a/winit/src/application.rs
+++ b/winit/src/application.rs
@@ -152,6 +152,7 @@ where
&application.title(),
application.mode(),
event_loop.primary_monitor(),
+ settings.id,
)
.with_menu(Some(conversion::menu(&application.menu())))
.build(&event_loop)
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);
}