Skip to content

Commit 5d20530

Browse files
authored
feat(core): add AppHandle::set_activation_policy (#9842)
1 parent d0d974f commit 5d20530

File tree

2 files changed

+32
-11
lines changed

2 files changed

+32
-11
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"tauri": patch:enhance
3+
---
4+
5+
Added `AppHandle::set_activation_policy` for macOS.

core/tauri/src/app.rs

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -423,6 +423,26 @@ impl<R: Runtime> AppHandle<R> {
423423
}
424424
crate::process::restart(&self.env());
425425
}
426+
427+
/// Sets the activation policy for the application. It is set to `NSApplicationActivationPolicyRegular` by default.
428+
///
429+
/// # Examples
430+
/// ```,no_run
431+
/// tauri::Builder::default()
432+
/// .setup(move |app| {
433+
/// #[cfg(target_os = "macos")]
434+
/// app.handle().set_activation_policy(tauri::ActivationPolicy::Accessory);
435+
/// Ok(())
436+
/// });
437+
/// ```
438+
#[cfg(target_os = "macos")]
439+
#[cfg_attr(docsrs, doc(cfg(target_os = "macos")))]
440+
pub fn set_activation_policy(&self, activation_policy: ActivationPolicy) -> crate::Result<()> {
441+
self
442+
.runtime_handle
443+
.set_activation_policy(activation_policy)
444+
.map_err(Into::into)
445+
}
426446
}
427447

428448
impl<R: Runtime> Manager<R> for AppHandle<R> {
@@ -898,24 +918,20 @@ impl<R: Runtime> App<R> {
898918
///
899919
/// # Examples
900920
/// ```,no_run
901-
/// let mut app = tauri::Builder::default()
902-
/// // on an actual app, remove the string argument
903-
/// .build(tauri::generate_context!("test/fixture/src-tauri/tauri.conf.json"))
904-
/// .expect("error while building tauri application");
905-
/// #[cfg(target_os = "macos")]
906-
/// app.set_activation_policy(tauri::ActivationPolicy::Accessory);
907-
/// app.run(|_app_handle, _event| {});
921+
/// tauri::Builder::default()
922+
/// .setup(move |app| {
923+
/// #[cfg(target_os = "macos")]
924+
/// app.set_activation_policy(tauri::ActivationPolicy::Accessory);
925+
/// Ok(())
926+
/// });
908927
/// ```
909928
#[cfg(target_os = "macos")]
910929
#[cfg_attr(docsrs, doc(cfg(target_os = "macos")))]
911930
pub fn set_activation_policy(&mut self, activation_policy: ActivationPolicy) {
912931
if let Some(runtime) = self.runtime.as_mut() {
913932
runtime.set_activation_policy(activation_policy);
914933
} else {
915-
let _ = self
916-
.app_handle()
917-
.runtime_handle
918-
.set_activation_policy(activation_policy);
934+
let _ = self.app_handle().set_activation_policy(activation_policy);
919935
}
920936
}
921937

0 commit comments

Comments
 (0)