Fixes #539: Allow windows to be set always_on_top

This commit is contained in:
Tom 2020-09-28 21:05:15 -07:00
parent 4f2962d73f
commit f2247a70dc
2 changed files with 12 additions and 2 deletions

View File

@ -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<Icon>,
}
@ -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<Settings> 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(),
}

View File

@ -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<winit::window::Icon>,
@ -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(),
}