summaryrefslogtreecommitdiffstats
path: root/winit
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón <hector0193@gmail.com>2021-04-11 10:38:52 +0700
committerLibravatar GitHub <noreply@github.com>2021-04-11 10:38:52 +0700
commit4b8ba8309f6645cdcb5bd605f8dd88097f8ee5a7 (patch)
tree3cc5a3d85c57847044580b802cfa6d0df5948d6e /winit
parent3ea2c4595acbbbe22ad04a642f98aeb08b638c58 (diff)
parent84c0c9bc7ab858793183560739c8fd6087e22f6e (diff)
downloadiced-4b8ba8309f6645cdcb5bd605f8dd88097f8ee5a7.tar.gz
iced-4b8ba8309f6645cdcb5bd605f8dd88097f8ee5a7.tar.bz2
iced-4b8ba8309f6645cdcb5bd605f8dd88097f8ee5a7.zip
Merge pull request #825 from tarkah/feat/window-visibility
add window visibility
Diffstat (limited to 'winit')
-rw-r--r--winit/src/application/state.rs2
-rw-r--r--winit/src/conversion.rs10
-rw-r--r--winit/src/mode.rs3
-rw-r--r--winit/src/settings.rs3
4 files changed, 16 insertions, 2 deletions
diff --git a/winit/src/application/state.rs b/winit/src/application/state.rs
index 46297370..b54d3aed 100644
--- a/winit/src/application/state.rs
+++ b/winit/src/application/state.rs
@@ -182,6 +182,8 @@ impl<A: Application> State<A> {
new_mode,
));
+ window.set_visible(conversion::visible(new_mode));
+
self.mode = new_mode;
}
diff --git a/winit/src/conversion.rs b/winit/src/conversion.rs
index 0fa27413..b850a805 100644
--- a/winit/src/conversion.rs
+++ b/winit/src/conversion.rs
@@ -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
diff --git a/winit/src/mode.rs b/winit/src/mode.rs
index 37464711..fdce8e23 100644
--- a/winit/src/mode.rs
+++ b/winit/src/mode.rs
@@ -6,4 +6,7 @@ pub enum Mode {
/// The application takes the whole screen of its current monitor.
Fullscreen,
+
+ /// The application is hidden
+ Hidden,
}
diff --git a/winit/src/settings.rs b/winit/src/settings.rs
index 9ce5cfc5..663fa07a 100644
--- a/winit/src/settings.rs
+++ b/winit/src/settings.rs
@@ -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