summaryrefslogtreecommitdiffstats
path: root/winit/src/application.rs
diff options
context:
space:
mode:
Diffstat (limited to 'winit/src/application.rs')
-rw-r--r--winit/src/application.rs49
1 files changed, 35 insertions, 14 deletions
diff --git a/winit/src/application.rs b/winit/src/application.rs
index c1836ed9..3fdec658 100644
--- a/winit/src/application.rs
+++ b/winit/src/application.rs
@@ -147,11 +147,15 @@ where
#[cfg(target_arch = "wasm32")]
let target = settings.window.platform_specific.target.clone();
- let builder = settings.window.into_builder(
- &application.title(),
- event_loop.primary_monitor(),
- settings.id,
- );
+ let should_be_visible = settings.window.visible;
+ let builder = settings
+ .window
+ .into_builder(
+ &application.title(),
+ event_loop.primary_monitor(),
+ settings.id,
+ )
+ .with_visible(false);
log::info!("Window builder: {:#?}", builder);
@@ -202,6 +206,7 @@ where
control_sender,
init_command,
window,
+ should_be_visible,
settings.exit_on_close_request,
);
@@ -268,6 +273,7 @@ async fn run_instance<A, E, C>(
mut control_sender: mpsc::UnboundedSender<winit::event_loop::ControlFlow>,
init_command: Command<A::Message>,
window: winit::window::Window,
+ should_be_visible: bool,
exit_on_close_request: bool,
) where
A: Application + 'static,
@@ -295,6 +301,10 @@ async fn run_instance<A, E, C>(
physical_size.height,
);
+ if should_be_visible {
+ window.set_visible(true);
+ }
+
run_command(
&application,
&mut cache,
@@ -737,11 +747,11 @@ pub fn run_command<A, E>(
height,
});
}
- window::Action::Maximize(value) => {
- window.set_maximized(value);
+ window::Action::Maximize(maximized) => {
+ window.set_maximized(maximized);
}
- window::Action::Minimize(value) => {
- window.set_minimized(value);
+ window::Action::Minimize(minimized) => {
+ window.set_minimized(minimized);
}
window::Action::Move { x, y } => {
window.set_outer_position(winit::dpi::LogicalPosition {
@@ -771,13 +781,24 @@ pub fn run_command<A, E>(
window.set_maximized(!window.is_maximized())
}
window::Action::ToggleDecorations => {
- window.set_decorations(!window.is_decorated())
+ window.set_decorations(!window.is_decorated());
}
- window::Action::RequestUserAttention(user_attention) => window
- .request_user_attention(
+ window::Action::RequestUserAttention(user_attention) => {
+ window.request_user_attention(
user_attention.map(conversion::user_attention),
- ),
- window::Action::GainFocus => window.focus_window(),
+ );
+ }
+ window::Action::GainFocus => {
+ window.focus_window();
+ }
+ window::Action::ChangeAlwaysOnTop(on_top) => {
+ window.set_always_on_top(on_top);
+ }
+ window::Action::FetchId(tag) => {
+ proxy
+ .send_event(tag(window.id().into()))
+ .expect("Send message to event loop");
+ }
},
command::Action::System(action) => match action {
system::Action::QueryInformation(_tag) => {