From 42b1bfe66d2407901c1ae640f80ce9e0d3c64b60 Mon Sep 17 00:00:00 2001 From: 13r0ck Date: Fri, 27 Jan 2023 13:25:04 -0700 Subject: Fix: Clippy lint 'uninlined_format_args' --- winit/src/application.rs | 2 +- winit/src/application/profiler.rs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'winit/src') diff --git a/winit/src/application.rs b/winit/src/application.rs index 77ca4b31..8c841533 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -535,7 +535,7 @@ async fn run_instance( Err(error) => match error { // This is an unrecoverable error. compositor::SurfaceError::OutOfMemory => { - panic!("{:?}", error); + panic!("{error:?}"); } _ => { debug.render_finished(); diff --git a/winit/src/application/profiler.rs b/winit/src/application/profiler.rs index 23eaa390..7031507a 100644 --- a/winit/src/application/profiler.rs +++ b/winit/src/application/profiler.rs @@ -49,8 +49,8 @@ impl Profiler { .to_str() .unwrap_or("trace"); - let path = out_dir - .join(format!("{}_trace_{}.json", curr_exe_name, time)); + let path = + out_dir.join(format!("{curr_exe_name}_trace_{time}.json")); layer = layer.file(path); } else { -- cgit From ecc5bfaeff6503e9e0752035c5e0c94c5a5263a2 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Tue, 31 Jan 2023 04:04:29 +0100 Subject: Improve consistency of `window::Action` --- winit/src/application.rs | 2 +- winit/src/window.rs | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'winit/src') diff --git a/winit/src/application.rs b/winit/src/application.rs index 8c841533..c1836ed9 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -749,7 +749,7 @@ pub fn run_command( y, }); } - window::Action::SetMode(mode) => { + window::Action::ChangeMode(mode) => { window.set_visible(conversion::visible(mode)); window.set_fullscreen(conversion::fullscreen( window.primary_monitor(), diff --git a/winit/src/window.rs b/winit/src/window.rs index 2306bdf1..0685c87c 100644 --- a/winit/src/window.rs +++ b/winit/src/window.rs @@ -22,12 +22,12 @@ pub fn resize(width: u32, height: u32) -> Command { })) } -/// Sets the window to maximized or back. +/// Maximizes the window. pub fn maximize(value: bool) -> Command { Command::single(command::Action::Window(window::Action::Maximize(value))) } -/// Set the window to minimized or back. +/// Minimes the window. pub fn minimize(value: bool) -> Command { Command::single(command::Action::Window(window::Action::Minimize(value))) } @@ -38,11 +38,11 @@ pub fn move_to(x: i32, y: i32) -> Command { } /// Sets the [`Mode`] of the window. -pub fn set_mode(mode: Mode) -> Command { - Command::single(command::Action::Window(window::Action::SetMode(mode))) +pub fn change_mode(mode: Mode) -> Command { + Command::single(command::Action::Window(window::Action::ChangeMode(mode))) } -/// Sets the window to maximized or back. +/// Toggles the window to maximized or back. pub fn toggle_maximize() -> Command { Command::single(command::Action::Window(window::Action::ToggleMaximize)) } -- cgit From 98a717383acf71d7939d7cc90d350743487f0380 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Tue, 31 Jan 2023 04:08:19 +0100 Subject: Write missing `window::Action` helpers in `window` --- winit/src/window.rs | 39 ++++++++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-) (limited to 'winit/src') diff --git a/winit/src/window.rs b/winit/src/window.rs index 0685c87c..6e3a383a 100644 --- a/winit/src/window.rs +++ b/winit/src/window.rs @@ -42,11 +42,6 @@ pub fn change_mode(mode: Mode) -> Command { Command::single(command::Action::Window(window::Action::ChangeMode(mode))) } -/// Toggles the window to maximized or back. -pub fn toggle_maximize() -> Command { - Command::single(command::Action::Window(window::Action::ToggleMaximize)) -} - /// Fetches the current [`Mode`] of the window. pub fn fetch_mode( f: impl FnOnce(Mode) -> Message + 'static, @@ -55,3 +50,37 @@ pub fn fetch_mode( Box::new(f), ))) } + +/// Toggles the window to maximized or back. +pub fn toggle_maximize() -> Command { + Command::single(command::Action::Window(window::Action::ToggleMaximize)) +} + +/// Toggles the window decorations. +pub fn toggle_decorations() -> Command { + Command::single(command::Action::Window(window::Action::ToggleDecorations)) +} + +/// Request user attention to the window, this has no effect if the application +/// is already focused. How requesting for user attention manifests is platform dependent, +/// see [`UserAttention`] for details. +/// +/// Providing `None` will unset the request for user attention. Unsetting the request for +/// user attention might not be done automatically by the WM when the window receives input. +pub fn request_user_attention( + user_attention: Option, +) -> Command { + Command::single(command::Action::Window( + window::Action::RequestUserAttention(user_attention), + )) +} + +/// Brings the window to the front and sets input focus. Has no effect if the window is +/// already in focus, minimized, or not visible. +/// +/// This [`Command`] steals input focus from other applications. Do not use this method unless +/// you are certain that's what the user wants. Focus stealing can cause an extremely disruptive +/// user experience. +pub fn gain_focus() -> Command { + Command::single(command::Action::Window(window::Action::GainFocus)) +} -- cgit From 9506fb1181e60e78d92b6f0712d385371966e07f Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Sat, 11 Feb 2023 03:06:42 +0100 Subject: Hide window until `Renderer` has been initialized --- winit/src/application.rs | 20 +++++++++++++++----- winit/src/settings.rs | 3 +-- 2 files changed, 16 insertions(+), 7 deletions(-) (limited to 'winit/src') diff --git a/winit/src/application.rs b/winit/src/application.rs index c1836ed9..769fe9dd 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( mut control_sender: mpsc::UnboundedSender, init_command: Command, 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( physical_size.height, ); + if should_be_visible { + window.set_visible(true); + } + run_command( &application, &mut cache, diff --git a/winit/src/settings.rs b/winit/src/settings.rs index 9bbdef5c..45f38833 100644 --- a/winit/src/settings.rs +++ b/winit/src/settings.rs @@ -114,8 +114,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_visible(self.visible); + .with_always_on_top(self.always_on_top); if let Some(position) = conversion::position( primary_monitor.as_ref(), -- cgit