Merge pull request #825 from tarkah/feat/window-visibility

add window visibility
This commit is contained in:
Héctor Ramón 2021-04-11 10:38:52 +07:00 committed by GitHub
commit 4b8ba8309f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 20 additions and 2 deletions

View File

@ -277,6 +277,7 @@ where
match self.0.mode() {
window::Mode::Windowed => iced_winit::Mode::Windowed,
window::Mode::Fullscreen => iced_winit::Mode::Fullscreen,
window::Mode::Hidden => iced_winit::Mode::Hidden,
}
}

View File

@ -6,4 +6,7 @@ pub enum Mode {
/// The application takes the whole screen of its current monitor.
Fullscreen,
/// The application is hidden
Hidden,
}

View File

@ -182,6 +182,8 @@ impl<A: Application> State<A> {
new_mode,
));
window.set_visible(conversion::visible(new_mode));
self.mode = new_mode;
}

View File

@ -141,13 +141,21 @@ pub fn fullscreen(
mode: Mode,
) -> Option<winit::window::Fullscreen> {
match mode {
Mode::Windowed => None,
Mode::Windowed | Mode::Hidden => None,
Mode::Fullscreen => {
Some(winit::window::Fullscreen::Borderless(monitor))
}
}
}
/// Converts a [`Mode`] to a visibility flag.
pub fn visible(mode: Mode) -> bool {
match mode {
Mode::Windowed | Mode::Fullscreen => true,
Mode::Hidden => false,
}
}
/// Converts a `MouseCursor` from [`iced_native`] to a [`winit`] cursor icon.
///
/// [`winit`]: https://github.com/rust-windowing/winit

View File

@ -6,4 +6,7 @@ pub enum Mode {
/// The application takes the whole screen of its current monitor.
Fullscreen,
/// The application is hidden
Hidden,
}

View File

@ -80,7 +80,8 @@ impl Window {
.with_transparent(self.transparent)
.with_window_icon(self.icon)
.with_always_on_top(self.always_on_top)
.with_fullscreen(conversion::fullscreen(primary_monitor, mode));
.with_fullscreen(conversion::fullscreen(primary_monitor, mode))
.with_visible(conversion::visible(mode));
if let Some((width, height)) = self.min_size {
window_builder = window_builder