fix:无焦点功能状态丢失

This commit is contained in:
2025-09-13 10:55:27 +08:00
parent afd49f154c
commit cda1f0b77d
2 changed files with 16 additions and 2 deletions
+9
View File
@@ -50,6 +50,9 @@ namespace Ink_Canvas
// 墨迹渐隐管理器 // 墨迹渐隐管理器
private InkFadeManager _inkFadeManager; private InkFadeManager _inkFadeManager;
// 设置面板相关状态
private bool userChangedNoFocusModeInSettings;
#region Window Initialization #region Window Initialization
@@ -1933,6 +1936,12 @@ namespace Ink_Canvas
{ {
ApplyAlwaysOnTop(); ApplyAlwaysOnTop();
} }
// 如果当前在设置面板中,标记用户已修改无焦点模式设置
if (BorderSettings.Visibility == Visibility.Visible)
{
userChangedNoFocusModeInSettings = true;
}
} }
private void ToggleSwitchAlwaysOnTop_Toggled(object sender, RoutedEventArgs e) private void ToggleSwitchAlwaysOnTop_Toggled(object sender, RoutedEventArgs e)
@@ -364,11 +364,15 @@ namespace Ink_Canvas
{ {
BorderSettings.Visibility = Visibility.Collapsed; BorderSettings.Visibility = Visibility.Collapsed;
isOpeningOrHidingSettingsPane = false; isOpeningOrHidingSettingsPane = false;
// 在设置面板完全关闭后,根据当前设置恢复无焦点模式 // 在设置面板完全关闭后,根据情况恢复无焦点模式状态
if (Settings.Advanced.IsNoFocusMode) if (!userChangedNoFocusModeInSettings && wasNoFocusModeBeforeSettings)
{ {
// 如果用户没有在设置中修改无焦点模式,则恢复之前的状态
Settings.Advanced.IsNoFocusMode = true;
ToggleSwitchNoFocusMode.IsOn = true; // 同步更新设置面板中的开关状态
ApplyNoFocusMode(); ApplyNoFocusMode();
} }
// 如果用户在设置中修改了无焦点模式,则保持用户的修改
}; };
BorderSettings.Visibility = Visibility.Visible; BorderSettings.Visibility = Visibility.Visible;
@@ -2612,6 +2616,7 @@ namespace Ink_Canvas
{ {
// 临时禁用无焦点模式以避免下拉选项被遮挡 // 临时禁用无焦点模式以避免下拉选项被遮挡
wasNoFocusModeBeforeSettings = Settings.Advanced.IsNoFocusMode; wasNoFocusModeBeforeSettings = Settings.Advanced.IsNoFocusMode;
userChangedNoFocusModeInSettings = false; // 重置用户修改标志
if (wasNoFocusModeBeforeSettings) if (wasNoFocusModeBeforeSettings)
{ {
Settings.Advanced.IsNoFocusMode = false; Settings.Advanced.IsNoFocusMode = false;