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 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)
@@ -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;