From 1fc6d9bd3f4d51de957c6baa8aaaf921db9ac4fe Mon Sep 17 00:00:00 2001 From: baiqing Date: Sat, 2 May 2026 11:35:45 +0800 Subject: [PATCH] =?UTF-8?q?fix(mic):=20=E5=90=AC=E5=86=99=E8=B7=AF?= =?UTF-8?q?=E5=BE=84=E8=AF=B7=E6=B1=82=E9=BA=A6=E5=85=8B=E9=A3=8E=E6=9D=83?= =?UTF-8?q?=E9=99=90=E6=97=B6=E4=B8=8D=E5=86=8D=E6=8A=A2=E5=89=8D=E5=8F=B0?= =?UTF-8?q?=E7=84=A6=E7=82=B9=20(closes=20#166)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- openless-all/app/src-tauri/src/coordinator.rs | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/openless-all/app/src-tauri/src/coordinator.rs b/openless-all/app/src-tauri/src/coordinator.rs index 0aa1b8ac..42eea2e8 100644 --- a/openless-all/app/src-tauri/src/coordinator.rs +++ b/openless-all/app/src-tauri/src/coordinator.rs @@ -1505,12 +1505,11 @@ fn debug_transcript_override_text() -> Option { } } -fn ensure_microphone_permission(inner: &Arc) -> Result<(), String> { +fn ensure_microphone_permission(_inner: &Arc) -> Result<(), String> { use crate::permissions::{self, PermissionStatus}; #[cfg(target_os = "windows")] { - let _ = inner; if permissions::windows_microphone_access_explicitly_denied() { return Err("需要麦克风权限,当前状态: Denied".to_string()); } @@ -1525,11 +1524,10 @@ fn ensure_microphone_permission(inner: &Arc) -> Result<(), String> { return Ok(()); } - let requested = if let Some(app) = inner.app.lock().clone() { - crate::request_microphone_from_foreground(&app) - } else { - permissions::request_microphone() - }; + // 听写路径不抢前台焦点:缺 mic 权限时直接请求系统授权,不再先 show_main_window。 + // 用户在设置页手动点“请求权限”仍走 request_microphone_from_foreground,那是显式操作。 + // 这里若系统不弹框,后续会通过 capsule error 引导用户主动去权限页处理。详见 #166。 + let requested = permissions::request_microphone(); if matches!( requested, PermissionStatus::Granted | PermissionStatus::NotApplicable