diff --git a/src/modules/peek/Peek.UI/Helpers/FileExplorerHelper.cs b/src/modules/peek/Peek.UI/Helpers/FileExplorerHelper.cs index 4f361a8dce..b2bb1234cd 100644 --- a/src/modules/peek/Peek.UI/Helpers/FileExplorerHelper.cs +++ b/src/modules/peek/Peek.UI/Helpers/FileExplorerHelper.cs @@ -87,10 +87,20 @@ namespace Peek.UI.Helpers private static IShellItemArray? GetShellItemArray(IShellBrowser shellBrowser, bool onlySelectedFiles) { - var shellView = (IFolderView)shellBrowser.QueryActiveShellView(); - var selectionFlag = onlySelectedFiles ? (uint)_SVGIO.SVGIO_SELECTION : (uint)_SVGIO.SVGIO_ALLVIEW; - shellView.Items(selectionFlag, typeof(IShellItemArray).GUID, out var items); - return items as IShellItemArray; + var shellViewObject = shellBrowser.QueryActiveShellView(); + var shellView = shellViewObject as IFolderView; + if (shellView != null) + { + var selectionFlag = onlySelectedFiles ? (uint)_SVGIO.SVGIO_SELECTION : (uint)_SVGIO.SVGIO_ALLVIEW; + shellView.ItemCount(selectionFlag, out var countItems); + if (countItems > 0) + { + shellView.Items(selectionFlag, typeof(IShellItemArray).GUID, out var items); + return items as IShellItemArray; + } + } + + return null; } } } diff --git a/src/modules/peek/Peek.UI/MainWindow.xaml.cs b/src/modules/peek/Peek.UI/MainWindow.xaml.cs index 205980daae..81aa4264bf 100644 --- a/src/modules/peek/Peek.UI/MainWindow.xaml.cs +++ b/src/modules/peek/Peek.UI/MainWindow.xaml.cs @@ -9,6 +9,7 @@ using Microsoft.UI.Windowing; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Input; using Peek.Common.Constants; +using Peek.Common.Helpers; using Peek.FilePreviewer.Models; using Peek.UI.Extensions; using Peek.UI.Helpers; @@ -42,11 +43,6 @@ namespace Peek.UI private void PeekWindow_Activated(object sender, Microsoft.UI.Xaml.WindowActivatedEventArgs args) { - if (args.WindowActivationState == Microsoft.UI.Xaml.WindowActivationState.CodeActivated) - { - this.BringToForeground(); - } - if (args.WindowActivationState == Microsoft.UI.Xaml.WindowActivationState.Deactivated) { var userSettings = App.GetService(); @@ -180,23 +176,32 @@ namespace Peek.UI private bool IsNewSingleSelectedItem() { - var foregroundWindowHandle = Windows.Win32.PInvoke.GetForegroundWindow(); - - var selectedItems = FileExplorerHelper.GetSelectedItems(foregroundWindowHandle); - var selectedItemsCount = selectedItems?.GetCount() ?? 0; - if (selectedItems == null || selectedItemsCount == 0 || selectedItemsCount > 1) + try { - return false; + var foregroundWindowHandle = Windows.Win32.PInvoke.GetForegroundWindow(); + + var selectedItems = FileExplorerHelper.GetSelectedItems(foregroundWindowHandle); + var selectedItemsCount = selectedItems?.GetCount() ?? 0; + if (selectedItems == null || selectedItemsCount == 0 || selectedItemsCount > 1) + { + return false; + } + + var fileExplorerSelectedItemPath = selectedItems.GetItemAt(0).ToIFileSystemItem().Path; + var currentItemPath = ViewModel.CurrentItem?.Path; + if (fileExplorerSelectedItemPath == null || currentItemPath == null || fileExplorerSelectedItemPath == currentItemPath) + { + return false; + } + + return true; + } + catch (Exception ex) + { + Logger.LogError(ex.Message); } - var fileExplorerSelectedItemPath = selectedItems.GetItemAt(0).ToIFileSystemItem().Path; - var currentItemPath = ViewModel.CurrentItem?.Path; - if (fileExplorerSelectedItemPath == null || currentItemPath == null || fileExplorerSelectedItemPath == currentItemPath) - { - return false; - } - - return true; + return false; } } }