Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 4 commits into from Oct 8, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
7 changes: 7 additions & 0 deletions .changes/focused.md
@@ -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.
7 changes: 3 additions & 4 deletions core/tauri-runtime-wry/src/lib.rs
Expand Up @@ -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 {
Expand Down Expand Up @@ -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
}

Expand Down
4 changes: 2 additions & 2 deletions core/tauri-runtime/src/webview.rs
Expand Up @@ -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]
Expand Down
2 changes: 1 addition & 1 deletion core/tauri-utils/src/config.rs
Expand Up @@ -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.
Expand Down
2 changes: 1 addition & 1 deletion core/tauri/src/test/mock_runtime.rs
Expand Up @@ -221,7 +221,7 @@ impl WindowBuilder for MockWindowBuilder {
self
}

fn focus(self) -> Self {
fn focused(self, focused: bool) -> Self {
self
}

Expand Down
15 changes: 13 additions & 2 deletions core/tauri/src/window.rs
Expand Up @@ -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
}

Expand Down
2 changes: 1 addition & 1 deletion tooling/api/src/window.ts
Expand Up @@ -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.
Expand Down
2 changes: 1 addition & 1 deletion tooling/cli/schema.json
Expand Up @@ -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"
},
Expand Down