feat(core): reimplement window initial focus flag, closes #5120 (#5338)

This commit is contained in:
Lucas Fernandes Nogueira 2022-10-08 16:37:12 -03:00 committed by GitHub
parent 8357ce5b2e
commit 4036e15f5a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 29 additions and 12 deletions

7
.changes/focused.md Normal file
View File

@ -0,0 +1,7 @@
---
"tauri": minor
"tauri-runtime": minor
"tauri-runtime-wry": minor
---
Readd the option to create an unfocused window via the `focused` method. The `focus` function has been deprecated.

View File

@ -690,7 +690,7 @@ unsafe impl Send for WindowBuilderWrapper {}
impl WindowBuilderBase for WindowBuilderWrapper {}
impl WindowBuilder for WindowBuilderWrapper {
fn new() -> Self {
Default::default()
Self::default().focused(true)
}
fn with_config(config: WindowConfig) -> Self {
@ -803,9 +803,8 @@ impl WindowBuilder for WindowBuilderWrapper {
self
}
/// Deprecated since 0.1.4 (noop)
/// Windows is automatically focused when created.
fn focus(self) -> Self {
fn focused(mut self, focused: bool) -> Self {
self.inner = self.inner.with_focused(focused);
self
}

View File

@ -133,9 +133,9 @@ pub trait WindowBuilder: WindowBuilderBase {
#[must_use]
fn fullscreen(self, fullscreen: bool) -> Self;
/// Whether the window will be initially hidden or focused.
/// Whether the window will be initially focused or not.
#[must_use]
fn focus(self) -> Self;
fn focused(self, focused: bool) -> Self;
/// Whether the window should be maximized upon creation.
#[must_use]

View File

@ -838,7 +838,7 @@ pub struct WindowConfig {
/// Whether the window starts as fullscreen or not.
#[serde(default)]
pub fullscreen: bool,
/// Whether the window will be initially hidden or focused.
/// Whether the window will be initially focused or not.
#[serde(default = "default_focus")]
pub focus: bool,
/// Whether the window is transparent or not.

View File

@ -221,7 +221,7 @@ impl WindowBuilder for MockWindowBuilder {
self
}
fn focus(self) -> Self {
fn focused(self, focused: bool) -> Self {
self
}

View File

@ -328,10 +328,21 @@ impl<'a, R: Runtime> WindowBuilder<'a, R> {
self
}
/// Whether the window will be initially hidden or focused.
/// Sets the window to be initially focused.
#[must_use]
#[deprecated(
since = "1.2.0",
note = "The window is automatically focused by default. This function Will be removed in 2.0.0. Use `focused` instead."
)]
pub fn focus(mut self) -> Self {
self.window_builder = self.window_builder.focus();
self.window_builder = self.window_builder.focused(true);
self
}
/// Whether the window will be initially focused or not.
#[must_use]
pub fn focused(mut self, focused: bool) -> Self {
self.window_builder = self.window_builder.focused(focused);
self
}

View File

@ -2004,7 +2004,7 @@ interface WindowOptions {
title?: string
/** Whether the window is in fullscreen mode or not. */
fullscreen?: boolean
/** Whether the window will be initially hidden or focused. */
/** Whether the window will be initially focused or not. */
focus?: boolean
/**
* Whether the window is transparent or not.

View File

@ -612,7 +612,7 @@
"type": "boolean"
},
"focus": {
"description": "Whether the window will be initially hidden or focused.",
"description": "Whether the window will be initially focused or not.",
"default": true,
"type": "boolean"
},