From aaca0c0a4a2a50c6e09ae8e1573eaabc05347888 Mon Sep 17 00:00:00 2001 From: DB p Date: Wed, 19 Mar 2025 00:09:02 +0900 Subject: [PATCH] Change Comment to english --- Flow.Launcher/MainWindow.xaml.cs | 17 +++---- Flow.Launcher/ViewModel/MainViewModel.cs | 59 +++++++++++------------- 2 files changed, 35 insertions(+), 41 deletions(-) diff --git a/Flow.Launcher/MainWindow.xaml.cs b/Flow.Launcher/MainWindow.xaml.cs index 19af4cc29..124594e1b 100644 --- a/Flow.Launcher/MainWindow.xaml.cs +++ b/Flow.Launcher/MainWindow.xaml.cs @@ -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) diff --git a/Flow.Launcher/ViewModel/MainViewModel.cs b/Flow.Launcher/ViewModel/MainViewModel.cs index 0ee6751e2..e0b523960 100644 --- a/Flow.Launcher/ViewModel/MainViewModel.cs +++ b/Flow.Launcher/ViewModel/MainViewModel.cs @@ -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 ///