Change Comment to english

This commit is contained in:
DB p 2025-03-19 00:09:02 +09:00
parent 4731d8893c
commit aaca0c0a4a
2 changed files with 35 additions and 41 deletions

View file

@ -845,20 +845,20 @@ namespace Flow.Launcher
var animationDuration = TimeSpan.FromMilliseconds(animationLength * 2 / 3); var animationDuration = TimeSpan.FromMilliseconds(animationLength * 2 / 3);
// ✅ ClockPanel이 표시될 조건 (쿼리 입력 없음 & ContextMenu, History가 닫혀 있음) // ✅ Conditions for showing ClockPanel (No query input & ContextMenu, History are closed)
bool shouldShowClock = QueryTextBox.Text.Length == 0 && bool shouldShowClock = QueryTextBox.Text.Length == 0 &&
ContextMenu.Visibility != Visibility.Visible && ContextMenu.Visibility != Visibility.Visible &&
History.Visibility != Visibility.Visible; History.Visibility != Visibility.Visible;
// ✅ 1. ContextMenu가 열리면 즉시 Visibility.Hidden으로 설정 (애니메이션 없이 강제 숨김) // ✅ 1. When ContextMenu opens, immediately set Visibility.Hidden (force hide without animation)
if (ContextMenu.Visibility == Visibility.Visible) if (ContextMenu.Visibility == Visibility.Visible)
{ {
ClockPanel.Visibility = Visibility.Hidden; ClockPanel.Visibility = Visibility.Hidden;
ClockPanel.Opacity = 0.0; // 혹시라도 Opacity 애니메이션이 영향을 줄 경우 0으로 설정 ClockPanel.Opacity = 0.0; // Set to 0 in case Opacity animation affects it
return; return;
} }
// ✅ 2. ContextMenu가 닫혔을 때, 쿼리에 글자가 남아 있다면 Hidden 상태 유지 (이전 상태 기억) // ✅ 2. When ContextMenu is closed, keep it Hidden if there's text in the query (remember previous state)
if (ContextMenu.Visibility != Visibility.Visible && QueryTextBox.Text.Length > 0) if (ContextMenu.Visibility != Visibility.Visible && QueryTextBox.Text.Length > 0)
{ {
ClockPanel.Visibility = Visibility.Hidden; ClockPanel.Visibility = Visibility.Hidden;
@ -866,7 +866,7 @@ namespace Flow.Launcher
return; return;
} }
// ✅ 3. ClockPanel을 숨기는 경우 (페이드아웃 애니메이션 적용) // ✅ 3. When hiding ClockPanel (apply fade-out animation)
if ((!shouldShowClock) && ClockPanel.Visibility == Visibility.Visible && !_isClockPanelAnimating) if ((!shouldShowClock) && ClockPanel.Visibility == Visibility.Visible && !_isClockPanelAnimating)
{ {
_isClockPanelAnimating = true; _isClockPanelAnimating = true;
@ -881,20 +881,20 @@ namespace Flow.Launcher
fadeOut.Completed += (s, e) => fadeOut.Completed += (s, e) =>
{ {
ClockPanel.Visibility = Visibility.Hidden; // ✅ 애니메이션 후 완전히 숨김 ClockPanel.Visibility = Visibility.Hidden; // ✅ Completely hide after animation
_isClockPanelAnimating = false; _isClockPanelAnimating = false;
}; };
ClockPanel.BeginAnimation(OpacityProperty, fadeOut); ClockPanel.BeginAnimation(OpacityProperty, fadeOut);
} }
// ✅ 4. ClockPanel을 표시하는 경우 (페이드인 애니메이션 적용) // ✅ 4. When showing ClockPanel (apply fade-in animation)
else if (shouldShowClock && ClockPanel.Visibility != Visibility.Visible && !_isClockPanelAnimating) else if (shouldShowClock && ClockPanel.Visibility != Visibility.Visible && !_isClockPanelAnimating)
{ {
_isClockPanelAnimating = true; _isClockPanelAnimating = true;
Application.Current.Dispatcher.Invoke(() => Application.Current.Dispatcher.Invoke(() =>
{ {
ClockPanel.Visibility = Visibility.Visible; // ✅ Visibility를 먼저 Visible로 설정 ClockPanel.Visibility = Visibility.Visible; // ✅ Set Visibility to Visible first
var fadeIn = new DoubleAnimation var fadeIn = new DoubleAnimation
{ {
@ -910,6 +910,7 @@ namespace Flow.Launcher
} }
} }
private static double GetOpacityFromStyle(Style style, double defaultOpacity = 1.0) private static double GetOpacityFromStyle(Style style, double defaultOpacity = 1.0)
{ {
if (style == null) if (style == null)

View file

@ -1368,28 +1368,28 @@ namespace Flow.Launcher.ViewModel
} }
public void Show() public void Show()
{
Application.Current.Dispatcher.Invoke(() =>
{
if (Application.Current.MainWindow is MainWindow mainWindow)
{ {
Application.Current.Dispatcher.Invoke(() => // 📌 Remove DWM Cloak (Make the window visible normally)
{ Win32Helper.DWMSetCloakForWindow(mainWindow, false);
if (Application.Current.MainWindow is MainWindow mainWindow)
{
// 📌 DWM Cloak 해제 (창을 정상적으로 표시)
Win32Helper.DWMSetCloakForWindow(mainWindow, false);
// 📌 UI 요소 복원 // 📌 Restore UI elements
mainWindow.ClockPanel.Visibility = Visibility.Visible; mainWindow.ClockPanel.Visibility = Visibility.Visible;
//mainWindow.SearchIcon.Visibility = Visibility.Visible; //mainWindow.SearchIcon.Visibility = Visibility.Visible;
SearchIconVisibility = Visibility.Visible; SearchIconVisibility = Visibility.Visible;
}
// WPF 속성 업데이트
MainWindowVisibility = Visibility.Visible;
MainWindowOpacity = 1;
MainWindowVisibilityStatus = true;
VisibilityChanged?.Invoke(this, new VisibilityChangedEventArgs { IsVisible = true });
});
} }
// Update WPF properties
MainWindowVisibility = Visibility.Visible;
MainWindowOpacity = 1;
MainWindowVisibilityStatus = true;
VisibilityChanged?.Invoke(this, new VisibilityChangedEventArgs { IsVisible = true });
});
}
#pragma warning disable VSTHRD100 // Avoid async void methods #pragma warning disable VSTHRD100 // Avoid async void methods
public async void Hide() public async void Hide()
@ -1406,14 +1406,14 @@ namespace Flow.Launcher.ViewModel
SelectedResults = Results; SelectedResults = Results;
} }
// 📌 텍스트 초기화 즉시 적용 + UI 강제 업데이트 // 📌 Immediately apply text reset + force UI update
if (Settings.LastQueryMode == LastQueryMode.Empty) if (Settings.LastQueryMode == LastQueryMode.Empty)
{ {
ChangeQueryText(string.Empty); ChangeQueryText(string.Empty);
await Task.Delay(1); // 한 프레임 후 UI가 반영되도록 대기 await Task.Delay(1); // Wait for one frame to ensure UI reflects changes
Application.Current.Dispatcher.Invoke(() => Application.Current.Dispatcher.Invoke(() =>
{ {
Application.Current.MainWindow.UpdateLayout(); // UI 강제 업데이트 Application.Current.MainWindow.UpdateLayout(); // Force UI update
}); });
} }
@ -1436,17 +1436,9 @@ namespace Flow.Launcher.ViewModel
break; break;
} }
//if (Application.Current.MainWindow is MainWindow mainWindow2)
//{
// IntPtr hWnd = new WindowInteropHelper(mainWindow2).Handle;
// // 📌 Cloak을 사용하지 않고 일반적인 `ShowWindow(SW_HIDE)` 사용 → Mica/Acrylic 유지됨
// ShowWindow(hWnd, SW_HIDE);
//}
if (Application.Current.MainWindow is MainWindow mainWindow) if (Application.Current.MainWindow is MainWindow mainWindow)
{ {
// 📌 아이콘과 시계 Opacity를 0으로 설정하고 Visibility.Hidden 적용 // 📌 Set Opacity of icon and clock to 0 and apply Visibility.Hidden
Application.Current.Dispatcher.Invoke(() => Application.Current.Dispatcher.Invoke(() =>
{ {
mainWindow.ClockPanel.Opacity = 0; mainWindow.ClockPanel.Opacity = 0;
@ -1455,23 +1447,24 @@ namespace Flow.Launcher.ViewModel
//mainWindow.SearchIcon.Visibility = Visibility.Hidden; //mainWindow.SearchIcon.Visibility = Visibility.Hidden;
SearchIconVisibility = Visibility.Hidden; SearchIconVisibility = Visibility.Hidden;
// 강제 UI 업데이트 // Force UI update
mainWindow.ClockPanel.UpdateLayout(); mainWindow.ClockPanel.UpdateLayout();
mainWindow.SearchIcon.UpdateLayout(); mainWindow.SearchIcon.UpdateLayout();
}, DispatcherPriority.Render); }, DispatcherPriority.Render);
// 📌 DWM Cloak 적용 (창을 완전히 숨김) // 📌 Apply DWM Cloak (Completely hide the window)
Win32Helper.DWMSetCloakForWindow(mainWindow, true); Win32Helper.DWMSetCloakForWindow(mainWindow, true);
} }
await Task.Delay(50); await Task.Delay(50);
// WPF 속성 업데이트 // Update WPF properties
//MainWindowOpacity = 0; //MainWindowOpacity = 0;
MainWindowVisibilityStatus = false; MainWindowVisibilityStatus = false;
MainWindowVisibility = Visibility.Collapsed; MainWindowVisibility = Visibility.Collapsed;
VisibilityChanged?.Invoke(this, new VisibilityChangedEventArgs { IsVisible = false }); VisibilityChanged?.Invoke(this, new VisibilityChangedEventArgs { IsVisible = false });
} }
#pragma warning restore VSTHRD100 // Avoid async void methods #pragma warning restore VSTHRD100 // Avoid async void methods
/// <summary> /// <summary>