테마 글로우 설정의 실시간 반영 누락 수정

- 런처가 SettingsChanged 이벤트를 직접 받아 테두리, 아이콘 애니메이션, 무지개 글로우, 선택 글로우를 즉시 다시 적용하도록 보강함

- AX Agent는 저장된 설정을 다시 읽을 때 스트리밍 중 입력창 글로우 설정도 즉시 반영하도록 RefreshFromSavedSettings 흐름을 정리함

- README와 DEVELOPMENT 문서를 2026-04-06 19:02 (KST) 기준으로 갱신하고 Release 빌드에서 경고 0 / 오류 0을 확인함
This commit is contained in:
2026-04-06 19:29:09 +09:00
parent 4df5d5d874
commit cc12177252
4 changed files with 35 additions and 3 deletions

View File

@@ -9914,6 +9914,10 @@ public partial class ChatWindow : Window
BuildBottomBar();
RefreshDraftQueueUi();
RefreshConversationList();
if (_isStreaming && _settings.Settings.Llm.EnableChatRainbowGlow)
PlayRainbowGlow();
else
StopRainbowGlow();
}, DispatcherPriority.Input);
}

View File

@@ -80,6 +80,9 @@ public partial class LauncherWindow : Window
});
};
}
if (CurrentApp?.SettingsService != null)
CurrentApp.SettingsService.SettingsChanged += OnSettingsChanged;
}
private void Window_Loaded(object sender, RoutedEventArgs e)
@@ -175,7 +178,20 @@ public partial class LauncherWindow : Window
}
});
// 런처 테두리 표시 설정
ApplyVisualSettings();
}
private void OnSettingsChanged(object? sender, EventArgs e)
{
Dispatcher.BeginInvoke(() =>
{
ApplyTheme();
ApplyVisualSettings();
}, System.Windows.Threading.DispatcherPriority.Input);
}
private void ApplyVisualSettings()
{
if (_vm.ShowLauncherBorder)
{
MainBorder.BorderThickness = new Thickness(1);
@@ -187,12 +203,12 @@ public partial class LauncherWindow : Window
MainBorder.BorderBrush = System.Windows.Media.Brushes.Transparent;
}
if (_vm.EnableIconAnimation)
if (_vm.EnableIconAnimation && IsVisible)
ApplyRandomIconAnimation();
else
ResetIconAnimation();
if (_vm.EnableRainbowGlow)
if (_vm.EnableRainbowGlow && IsVisible)
StartRainbowGlow();
else
StopRainbowGlow();
@@ -1663,6 +1679,14 @@ public partial class LauncherWindow : Window
if (_vm.CloseOnFocusLost) Hide();
}
protected override void OnClosed(EventArgs e)
{
if (CurrentApp?.SettingsService != null)
CurrentApp.SettingsService.SettingsChanged -= OnSettingsChanged;
base.OnClosed(e);
}
private void Window_LocationChanged(object sender, EventArgs e)
{
UpdateRememberedPositionCache();