From f0695bd9e2f47d50fe9c6a7c6c39233a57c969b4 Mon Sep 17 00:00:00 2001 From: ManthanNimodiya Date: Thu, 21 May 2026 04:12:35 +0530 Subject: [PATCH 1/2] fix(macos): remove redundant activation policy toggle in prepare_macos_panel_window --- apps/desktop/src-tauri/src/permissions.rs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/apps/desktop/src-tauri/src/permissions.rs b/apps/desktop/src-tauri/src/permissions.rs index 1e5b9abdb2..e64fbd4cd4 100644 --- a/apps/desktop/src-tauri/src/permissions.rs +++ b/apps/desktop/src-tauri/src/permissions.rs @@ -164,10 +164,6 @@ pub(crate) fn prepare_macos_panel_window( ) -> MacosPanelWindowActivationGuard { MACOS_PENDING_PANEL_WINDOWS.fetch_add(1, Ordering::AcqRel); - if let Err(err) = app.set_activation_policy(tauri::ActivationPolicy::Accessory) { - tracing::warn!("Failed to prepare macOS panel activation policy: {err}"); - } - MacosPanelWindowActivationGuard { app: app.clone() } } From c00cefa28d1d8eef06390da2a4f550a00495c2f1 Mon Sep 17 00:00:00 2001 From: ManthanNimodiya Date: Thu, 21 May 2026 06:37:22 +0530 Subject: [PATCH 2/2] fix(macos): prevent duplicate dock icons during recording start --- apps/desktop/src-tauri/src/permissions.rs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/apps/desktop/src-tauri/src/permissions.rs b/apps/desktop/src-tauri/src/permissions.rs index e64fbd4cd4..dccbf5991d 100644 --- a/apps/desktop/src-tauri/src/permissions.rs +++ b/apps/desktop/src-tauri/src/permissions.rs @@ -162,7 +162,13 @@ fn macos_sync_activation_policy(app: &tauri::AppHandle, should_show_dock: bool) pub(crate) fn prepare_macos_panel_window( app: &tauri::AppHandle, ) -> MacosPanelWindowActivationGuard { - MACOS_PENDING_PANEL_WINDOWS.fetch_add(1, Ordering::AcqRel); + let prev = MACOS_PENDING_PANEL_WINDOWS.fetch_add(1, Ordering::AcqRel); + + if prev == 0 { + if let Err(err) = app.set_activation_policy(tauri::ActivationPolicy::Accessory) { + tracing::warn!("Failed to prepare macOS panel activation policy: {err}"); + } + } MacosPanelWindowActivationGuard { app: app.clone() } } @@ -173,6 +179,16 @@ pub(crate) fn sync_macos_dock_visibility(app: &tauri::AppHandle) { return; } + let has_visible_panel_window = app.webview_windows().iter().any(|(label, window)| { + CapWindowId::from_str(label) + .map(|id| !id.activates_dock() && window.is_visible().unwrap_or(false)) + .unwrap_or(false) + }); + + if has_visible_panel_window { + return; + } + let should_hide_dock = GeneralSettingsStore::get(app) .ok() .flatten()