From cda1f0b77dd189d492d57af95b860d9329aebd72 Mon Sep 17 00:00:00 2001 From: CJKmkp <2564608840@qq.com> Date: Sat, 13 Sep 2025 10:55:27 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E6=97=A0=E7=84=A6=E7=82=B9=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E7=8A=B6=E6=80=81=E4=B8=A2=E5=A4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ink Canvas/MainWindow.xaml.cs | 9 +++++++++ Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs | 9 +++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Ink Canvas/MainWindow.xaml.cs b/Ink Canvas/MainWindow.xaml.cs index 8ea43625..d383d3ff 100644 --- a/Ink Canvas/MainWindow.xaml.cs +++ b/Ink Canvas/MainWindow.xaml.cs @@ -50,6 +50,9 @@ namespace Ink_Canvas // 墨迹渐隐管理器 private InkFadeManager _inkFadeManager; + // 设置面板相关状态 + private bool userChangedNoFocusModeInSettings; + #region Window Initialization @@ -1933,6 +1936,12 @@ namespace Ink_Canvas { ApplyAlwaysOnTop(); } + + // 如果当前在设置面板中,标记用户已修改无焦点模式设置 + if (BorderSettings.Visibility == Visibility.Visible) + { + userChangedNoFocusModeInSettings = true; + } } private void ToggleSwitchAlwaysOnTop_Toggled(object sender, RoutedEventArgs e) diff --git a/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs b/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs index 2387af6f..9ff5f482 100644 --- a/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs +++ b/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs @@ -364,11 +364,15 @@ namespace Ink_Canvas { BorderSettings.Visibility = Visibility.Collapsed; isOpeningOrHidingSettingsPane = false; - // 在设置面板完全关闭后,根据当前设置恢复无焦点模式 - if (Settings.Advanced.IsNoFocusMode) + // 在设置面板完全关闭后,根据情况恢复无焦点模式状态 + if (!userChangedNoFocusModeInSettings && wasNoFocusModeBeforeSettings) { + // 如果用户没有在设置中修改无焦点模式,则恢复之前的状态 + Settings.Advanced.IsNoFocusMode = true; + ToggleSwitchNoFocusMode.IsOn = true; // 同步更新设置面板中的开关状态 ApplyNoFocusMode(); } + // 如果用户在设置中修改了无焦点模式,则保持用户的修改 }; BorderSettings.Visibility = Visibility.Visible; @@ -2612,6 +2616,7 @@ namespace Ink_Canvas { // 临时禁用无焦点模式以避免下拉选项被遮挡 wasNoFocusModeBeforeSettings = Settings.Advanced.IsNoFocusMode; + userChangedNoFocusModeInSettings = false; // 重置用户修改标志 if (wasNoFocusModeBeforeSettings) { Settings.Advanced.IsNoFocusMode = false;