diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3 (Package)/Package.appxmanifest b/BetterLyrics.WinUI3/BetterLyrics.WinUI3 (Package)/Package.appxmanifest
index 61af9d2..a8aea92 100644
--- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3 (Package)/Package.appxmanifest
+++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3 (Package)/Package.appxmanifest
@@ -12,7 +12,7 @@
+ Version="1.0.114.0" />
diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Helper/WindowHelper.cs b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Helper/WindowHelper.cs
index b303562..1ad713f 100644
--- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Helper/WindowHelper.cs
+++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Helper/WindowHelper.cs
@@ -369,7 +369,7 @@ namespace BetterLyrics.WinUI3.Helper
{
_setLyricsWindowVisibilityByPlayingStatusTimer ??= dispatcherQueue.CreateTimer();
- _setLyricsWindowVisibilityByPlayingStatusTimer.Debounce(async () =>
+ _setLyricsWindowVisibilityByPlayingStatusTimer.Debounce(() =>
{
var window = GetWindowByWindowType();
if (window == null) return;
@@ -378,7 +378,9 @@ namespace BetterLyrics.WinUI3.Helper
{
if (_liveStatesService.LiveStates.LyricsWindowStatus.IsWorkArea)
{
+ _liveStatesService.LiveStates.IsLyricsWindowStatusRefreshing = true;
SetIsWorkArea(false);
+ _liveStatesService.LiveStates.IsLyricsWindowStatusRefreshing = false;
}
HideWindow();
}
@@ -386,13 +388,13 @@ namespace BetterLyrics.WinUI3.Helper
{
if (_liveStatesService.LiveStates.LyricsWindowStatus.IsWorkArea)
{
+ _liveStatesService.LiveStates.IsLyricsWindowStatusRefreshing = true;
SetIsWorkArea(true);
+ _liveStatesService.LiveStates.IsLyricsWindowStatusRefreshing = false;
}
OpenOrShowWindow();
if (_liveStatesService.LiveStates.LyricsWindowStatus.IsWorkArea)
{
- UpdateWorkArea();
- await Task.Delay(300);
MoveAndResize(_liveStatesService.LiveStates.LyricsWindowStatus.GetWindowBoundsWhenWorkArea());
}
}
diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/LiveStates.cs b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/LiveStates.cs
index 8a3aa8b..1f60821 100644
--- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/LiveStates.cs
+++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/LiveStates.cs
@@ -18,6 +18,9 @@ namespace BetterLyrics.WinUI3.Models
{
[ObservableProperty][NotifyPropertyChangedRecipients] public partial LyricsWindowStatus LyricsWindowStatus { get; set; }
+ ///
+ /// 在需要暂时禁用监听歌词窗口位置大小变化时使用
+ ///
public bool IsLyricsWindowStatusRefreshing { get; set; } = false;
public LiveStates()
diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Services/LiveStatesService/LiveStatesService.cs b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Services/LiveStatesService/LiveStatesService.cs
index fd9913a..8f34be5 100644
--- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Services/LiveStatesService/LiveStatesService.cs
+++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Services/LiveStatesService/LiveStatesService.cs
@@ -80,15 +80,16 @@ namespace BetterLyrics.WinUI3.Services.LiveStatesService
LiveStates.IsLyricsWindowStatusRefreshing = false;
}
- private async void LyricsWindowStatus_PropertyChanged(object? sender, System.ComponentModel.PropertyChangedEventArgs e)
+ private void LyricsWindowStatus_PropertyChanged(object? sender, System.ComponentModel.PropertyChangedEventArgs e)
{
switch (e.PropertyName)
{
case nameof(LyricsWindowStatus.IsWorkArea):
+ LiveStates.IsLyricsWindowStatusRefreshing = true;
WindowHelper.SetIsWorkArea(LiveStates.LyricsWindowStatus.IsWorkArea);
+ LiveStates.IsLyricsWindowStatusRefreshing = false;
if (LiveStates.LyricsWindowStatus.IsWorkArea)
{
- await Task.Delay(300);
WindowHelper.MoveAndResize(LiveStates.LyricsWindowStatus.GetWindowBoundsWhenWorkArea());
}
break;
@@ -98,8 +99,9 @@ namespace BetterLyrics.WinUI3.Services.LiveStatesService
LiveStates.LyricsWindowStatus.UpdateMonitorBounds();
if (LiveStates.LyricsWindowStatus.IsWorkArea)
{
+ LiveStates.IsLyricsWindowStatusRefreshing = true;
WindowHelper.UpdateWorkArea();
- await Task.Delay(300);
+ LiveStates.IsLyricsWindowStatusRefreshing = false;
WindowHelper.MoveAndResize(LiveStates.LyricsWindowStatus.GetWindowBoundsWhenWorkArea());
}
break;