From f2247a70dc791536e2acc26c6e928c89a38a4a95 Mon Sep 17 00:00:00 2001 From: Tom Date: Mon, 28 Sep 2020 21:05:15 -0700 Subject: [PATCH] Fixes #539: Allow windows to be set always_on_top --- src/window/settings.rs | 7 ++++++- winit/src/settings.rs | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/window/settings.rs b/src/window/settings.rs index 7bc49ce1..6b5d2985 100644 --- a/src/window/settings.rs +++ b/src/window/settings.rs @@ -18,9 +18,12 @@ pub struct Settings { /// Whether the window should have a border, a title bar, etc. or not. pub decorations: bool, - /// Whether the window should be transparent + /// Whether the window should be transparent. pub transparent: bool, + /// Whether the window will always be on top of other windows. + pub always_on_top: bool, + /// The icon of the window. pub icon: Option, } @@ -34,6 +37,7 @@ impl Default for Settings { resizable: true, decorations: true, transparent: false, + always_on_top: false, icon: None, } } @@ -49,6 +53,7 @@ impl From for iced_winit::settings::Window { resizable: settings.resizable, decorations: settings.decorations, transparent: settings.transparent, + always_on_top: settings.always_on_top, icon: settings.icon.map(Icon::into), platform_specific: Default::default(), } diff --git a/winit/src/settings.rs b/winit/src/settings.rs index 92541e7d..e0d2c569 100644 --- a/winit/src/settings.rs +++ b/winit/src/settings.rs @@ -45,9 +45,12 @@ pub struct Window { /// Whether the window should have a border, a title bar, etc. pub decorations: bool, - /// Whether the window should be transparent + /// Whether the window should be transparent. pub transparent: bool, + /// Whether the window will always be on top of other windows. + pub always_on_top: bool, + /// The window icon, which is also usually used in the taskbar pub icon: Option, @@ -74,6 +77,7 @@ impl Window { .with_decorations(self.decorations) .with_transparent(self.transparent) .with_window_icon(self.icon) + .with_always_on_top(self.always_on_top) .with_fullscreen(conversion::fullscreen(primary_monitor, mode)); if let Some((width, height)) = self.min_size { @@ -108,6 +112,7 @@ impl Default for Window { resizable: true, decorations: true, transparent: false, + always_on_top: false, icon: None, platform_specific: Default::default(), }