summaryrefslogtreecommitdiffstats
path: root/winit/src/application
diff options
context:
space:
mode:
Diffstat (limited to 'winit/src/application')
-rw-r--r--winit/src/application/state.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/winit/src/application/state.rs b/winit/src/application/state.rs
index 46297370..d157211a 100644
--- a/winit/src/application/state.rs
+++ b/winit/src/application/state.rs
@@ -12,6 +12,7 @@ pub struct State<A: Application> {
mode: Mode,
background_color: Color,
scale_factor: f64,
+ visible: bool,
viewport: Viewport,
viewport_version: usize,
cursor_position: winit::dpi::PhysicalPosition<f64>,
@@ -26,6 +27,7 @@ impl<A: Application> State<A> {
let mode = application.mode();
let background_color = application.background_color();
let scale_factor = application.scale_factor();
+ let visible = application.visible();
let viewport = {
let physical_size = window.inner_size();
@@ -41,6 +43,7 @@ impl<A: Application> State<A> {
mode,
background_color,
scale_factor,
+ visible,
viewport,
viewport_version: 0,
// TODO: Encode cursor availability in the type-system
@@ -201,5 +204,14 @@ impl<A: Application> State<A> {
self.scale_factor = new_scale_factor;
}
+
+ // Update window visibility
+ let new_visible = application.visible();
+
+ if self.visible != new_visible {
+ window.set_visible(new_visible);
+
+ self.visible = new_visible;
+ }
}
}