mirror of
https://github.com/Flow-Launcher/Flow.Launcher.git
synced 2026-03-11 08:54:32 +00:00
Change Comment to english
This commit is contained in:
parent
4731d8893c
commit
aaca0c0a4a
2 changed files with 35 additions and 41 deletions
|
|
@ -845,20 +845,20 @@ namespace Flow.Launcher
|
|||
|
||||
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 &&
|
||||
ContextMenu.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)
|
||||
{
|
||||
ClockPanel.Visibility = Visibility.Hidden;
|
||||
ClockPanel.Opacity = 0.0; // 혹시라도 Opacity 애니메이션이 영향을 줄 경우 0으로 설정
|
||||
ClockPanel.Opacity = 0.0; // Set to 0 in case Opacity animation affects it
|
||||
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)
|
||||
{
|
||||
ClockPanel.Visibility = Visibility.Hidden;
|
||||
|
|
@ -866,7 +866,7 @@ namespace Flow.Launcher
|
|||
return;
|
||||
}
|
||||
|
||||
// ✅ 3. ClockPanel을 숨기는 경우 (페이드아웃 애니메이션 적용)
|
||||
// ✅ 3. When hiding ClockPanel (apply fade-out animation)
|
||||
if ((!shouldShowClock) && ClockPanel.Visibility == Visibility.Visible && !_isClockPanelAnimating)
|
||||
{
|
||||
_isClockPanelAnimating = true;
|
||||
|
|
@ -881,20 +881,20 @@ namespace Flow.Launcher
|
|||
|
||||
fadeOut.Completed += (s, e) =>
|
||||
{
|
||||
ClockPanel.Visibility = Visibility.Hidden; // ✅ 애니메이션 후 완전히 숨김
|
||||
ClockPanel.Visibility = Visibility.Hidden; // ✅ Completely hide after animation
|
||||
_isClockPanelAnimating = false;
|
||||
};
|
||||
|
||||
ClockPanel.BeginAnimation(OpacityProperty, fadeOut);
|
||||
}
|
||||
// ✅ 4. ClockPanel을 표시하는 경우 (페이드인 애니메이션 적용)
|
||||
// ✅ 4. When showing ClockPanel (apply fade-in animation)
|
||||
else if (shouldShowClock && ClockPanel.Visibility != Visibility.Visible && !_isClockPanelAnimating)
|
||||
{
|
||||
_isClockPanelAnimating = true;
|
||||
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
ClockPanel.Visibility = Visibility.Visible; // ✅ Visibility를 먼저 Visible로 설정
|
||||
ClockPanel.Visibility = Visibility.Visible; // ✅ Set Visibility to Visible first
|
||||
|
||||
var fadeIn = new DoubleAnimation
|
||||
{
|
||||
|
|
@ -910,6 +910,7 @@ namespace Flow.Launcher
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
private static double GetOpacityFromStyle(Style style, double defaultOpacity = 1.0)
|
||||
{
|
||||
if (style == null)
|
||||
|
|
|
|||
|
|
@ -1368,28 +1368,28 @@ namespace Flow.Launcher.ViewModel
|
|||
}
|
||||
|
||||
public void Show()
|
||||
{
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
if (Application.Current.MainWindow is MainWindow mainWindow)
|
||||
{
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
if (Application.Current.MainWindow is MainWindow mainWindow)
|
||||
{
|
||||
// 📌 DWM Cloak 해제 (창을 정상적으로 표시)
|
||||
Win32Helper.DWMSetCloakForWindow(mainWindow, false);
|
||||
// 📌 Remove DWM Cloak (Make the window visible normally)
|
||||
Win32Helper.DWMSetCloakForWindow(mainWindow, false);
|
||||
|
||||
// 📌 UI 요소 복원
|
||||
mainWindow.ClockPanel.Visibility = Visibility.Visible;
|
||||
//mainWindow.SearchIcon.Visibility = Visibility.Visible;
|
||||
SearchIconVisibility = Visibility.Visible;
|
||||
}
|
||||
|
||||
// WPF 속성 업데이트
|
||||
MainWindowVisibility = Visibility.Visible;
|
||||
MainWindowOpacity = 1;
|
||||
MainWindowVisibilityStatus = true;
|
||||
VisibilityChanged?.Invoke(this, new VisibilityChangedEventArgs { IsVisible = true });
|
||||
});
|
||||
// 📌 Restore UI elements
|
||||
mainWindow.ClockPanel.Visibility = Visibility.Visible;
|
||||
//mainWindow.SearchIcon.Visibility = Visibility.Visible;
|
||||
SearchIconVisibility = Visibility.Visible;
|
||||
}
|
||||
|
||||
// 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
|
||||
|
||||
public async void Hide()
|
||||
|
|
@ -1406,14 +1406,14 @@ namespace Flow.Launcher.ViewModel
|
|||
SelectedResults = Results;
|
||||
}
|
||||
|
||||
// 📌 텍스트 초기화 즉시 적용 + UI 강제 업데이트
|
||||
// 📌 Immediately apply text reset + force UI update
|
||||
if (Settings.LastQueryMode == LastQueryMode.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.MainWindow.UpdateLayout(); // UI 강제 업데이트
|
||||
Application.Current.MainWindow.UpdateLayout(); // Force UI update
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -1436,17 +1436,9 @@ namespace Flow.Launcher.ViewModel
|
|||
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)
|
||||
{
|
||||
// 📌 아이콘과 시계 Opacity를 0으로 설정하고 Visibility.Hidden 적용
|
||||
// 📌 Set Opacity of icon and clock to 0 and apply Visibility.Hidden
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
mainWindow.ClockPanel.Opacity = 0;
|
||||
|
|
@ -1455,23 +1447,24 @@ namespace Flow.Launcher.ViewModel
|
|||
//mainWindow.SearchIcon.Visibility = Visibility.Hidden;
|
||||
SearchIconVisibility = Visibility.Hidden;
|
||||
|
||||
// 강제 UI 업데이트
|
||||
// Force UI update
|
||||
mainWindow.ClockPanel.UpdateLayout();
|
||||
mainWindow.SearchIcon.UpdateLayout();
|
||||
}, DispatcherPriority.Render);
|
||||
|
||||
// 📌 DWM Cloak 적용 (창을 완전히 숨김)
|
||||
// 📌 Apply DWM Cloak (Completely hide the window)
|
||||
Win32Helper.DWMSetCloakForWindow(mainWindow, true);
|
||||
}
|
||||
|
||||
await Task.Delay(50);
|
||||
// WPF 속성 업데이트
|
||||
// Update WPF properties
|
||||
//MainWindowOpacity = 0;
|
||||
MainWindowVisibilityStatus = false;
|
||||
MainWindowVisibility = Visibility.Collapsed;
|
||||
VisibilityChanged?.Invoke(this, new VisibilityChangedEventArgs { IsVisible = false });
|
||||
}
|
||||
|
||||
|
||||
#pragma warning restore VSTHRD100 // Avoid async void methods
|
||||
|
||||
/// <summary>
|
||||
|
|
|
|||
Loading…
Reference in a new issue