diff --git a/Flow.Launcher/App.xaml.cs b/Flow.Launcher/App.xaml.cs index 9ee486b3b5a..ea4b25f5e09 100644 --- a/Flow.Launcher/App.xaml.cs +++ b/Flow.Launcher/App.xaml.cs @@ -69,8 +69,6 @@ await Stopwatch.NormalAsync("|App.OnStartup|Startup cost", async () => PluginManager.LoadPlugins(_settings.PluginSettings); _mainVM = new MainViewModel(_settings); - HotKeyMapper.Initialize(_mainVM); - API = new PublicAPIInstance(_settingsVM, _mainVM, _alphabet); Http.API = API; @@ -83,6 +81,8 @@ await Stopwatch.NormalAsync("|App.OnStartup|Startup cost", async () => Current.MainWindow = window; Current.MainWindow.Title = Constant.FlowLauncher; + + HotKeyMapper.Initialize(_mainVM); // happlebao todo temp fix for instance code logic // load plugin before change language, because plugin language also needs be changed diff --git a/Flow.Launcher/MainWindow.xaml.cs b/Flow.Launcher/MainWindow.xaml.cs index cf40c5ebfcb..e842f6e8862 100644 --- a/Flow.Launcher/MainWindow.xaml.cs +++ b/Flow.Launcher/MainWindow.xaml.cs @@ -17,6 +17,7 @@ using KeyEventArgs = System.Windows.Input.KeyEventArgs; using NotifyIcon = System.Windows.Forms.NotifyIcon; using Flow.Launcher.Infrastructure; +using System.Windows.Media; namespace Flow.Launcher { @@ -30,6 +31,7 @@ public partial class MainWindow private NotifyIcon _notifyIcon; private ContextMenu contextMenu; private MainViewModel _viewModel; + private readonly MediaPlayer animationSound = new(); private bool _animating; #endregion @@ -41,6 +43,7 @@ public MainWindow(Settings settings, MainViewModel mainVM) _settings = settings; InitializeComponent(); InitializePosition(); + animationSound.Open(new Uri(AppDomain.CurrentDomain.BaseDirectory + "Resources\\open.wav")); } public MainWindow() @@ -84,6 +87,12 @@ private void OnLoaded(object sender, RoutedEventArgs _) { if (_viewModel.MainWindowVisibilityStatus) { + if (_settings.UseSound) + { + animationSound.Position = TimeSpan.Zero; + animationSound.Play(); + } + UpdatePosition(); Activate(); QueryTextBox.Focus(); @@ -99,6 +108,9 @@ private void OnLoaded(object sender, RoutedEventArgs _) _progressBarStoryboard.Begin(ProgressBar, true); isProgressBarStoryboardPaused = false; } + + if(_settings.UseAnimation) + WindowAnimator(); } else if (!isProgressBarStoryboardPaused) { diff --git a/Flow.Launcher/ViewModel/MainViewModel.cs b/Flow.Launcher/ViewModel/MainViewModel.cs index abf3a1d14ea..95ef5d4839e 100644 --- a/Flow.Launcher/ViewModel/MainViewModel.cs +++ b/Flow.Launcher/ViewModel/MainViewModel.cs @@ -4,7 +4,6 @@ using System.Threading; using System.Threading.Tasks; using System.Windows; -using System.Windows.Media; using System.Windows.Input; using Flow.Launcher.Core.Plugin; using Flow.Launcher.Core.Resource; @@ -14,7 +13,6 @@ using Flow.Launcher.Infrastructure.Storage; using Flow.Launcher.Infrastructure.UserSettings; using Flow.Launcher.Plugin; -using Flow.Launcher.Plugin.SharedCommands; using Flow.Launcher.Storage; using Flow.Launcher.Infrastructure.Logger; using Microsoft.VisualStudio.Threading; @@ -734,20 +732,10 @@ public void ToggleFlowLauncher() public void Show() { - if (_settings.UseSound) - { - MediaPlayer media = new MediaPlayer(); - media.Open(new Uri(AppDomain.CurrentDomain.BaseDirectory + "Resources\\open.wav")); - media.Play(); - } - MainWindowVisibility = Visibility.Visible; MainWindowVisibilityStatus = true; - - if(_settings.UseAnimation) - ((MainWindow)Application.Current.MainWindow).WindowAnimator(); - + MainWindowOpacity = 1; }