Skip to content

Commit c18ec7f

Browse files
committed
Update BaseLayoutPage.cs
1 parent edf61d9 commit c18ec7f

File tree

1 file changed

+17
-14
lines changed

1 file changed

+17
-14
lines changed

src/Files.App/Views/Layouts/BaseLayoutPage.cs

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1008,6 +1008,7 @@ protected virtual void Page_PreviewKeyDown(object sender, KeyRoutedEventArgs e)
10081008
var key = e.Key;
10091009
var filter = ParentShellPageInstance.ShellViewModel.FilesAndFoldersFilter;
10101010
bool isShiftDown = InputKeyboardSource.GetKeyStateForCurrentThread(VirtualKey.Shift).HasFlag(CoreVirtualKeyStates.Down);
1011+
bool isFilteringEnabled = FoldersSettingsService.KeyboardTypingBehavior == KeyboardTypingBehavior.FilterItems;
10111012

10121013
// OEM codes
10131014
bool isOemMinus = (int)key == (int)Keys.OemMinus;
@@ -1026,31 +1027,33 @@ protected virtual void Page_PreviewKeyDown(object sender, KeyRoutedEventArgs e)
10261027
{
10271028
string typedChar = char.ToLowerInvariant(ch).ToString();
10281029

1029-
if (FoldersSettingsService.KeyboardTypingBehavior == KeyboardTypingBehavior.FilterItems)
1030+
if (isFilteringEnabled)
10301031
{
10311032
if (!GeneralSettingsService.ShowFilterHeader)
10321033
GeneralSettingsService.ShowFilterHeader = true;
10331034

10341035
ParentShellPageInstance.ShellViewModel.FilesAndFoldersFilter += typedChar;
10351036
}
1036-
1037-
JumpString += typedChar;
1038-
}
1039-
else if (key == VirtualKey.Space && !string.IsNullOrEmpty(filter) &&
1040-
FoldersSettingsService.KeyboardTypingBehavior == KeyboardTypingBehavior.FilterItems)
1041-
{
1042-
ParentShellPageInstance.ShellViewModel.FilesAndFoldersFilter += " ";
1037+
else
1038+
{
1039+
JumpString += typedChar;
1040+
return;
1041+
}
10431042
}
1044-
else if (key == VirtualKey.Back && !string.IsNullOrEmpty(filter) &&
1045-
FoldersSettingsService.KeyboardTypingBehavior == KeyboardTypingBehavior.FilterItems)
1043+
else if (isFilteringEnabled && !string.IsNullOrEmpty(filter))
10461044
{
1047-
ParentShellPageInstance.ShellViewModel.FilesAndFoldersFilter = filter[..^1];
1048-
1049-
if (string.IsNullOrEmpty(ParentShellPageInstance.ShellViewModel.FilesAndFoldersFilter))
1045+
if (key == VirtualKey.Space)
1046+
ParentShellPageInstance.ShellViewModel.FilesAndFoldersFilter += " ";
1047+
else if (key == VirtualKey.Back && filter.Length > 1)
1048+
ParentShellPageInstance.ShellViewModel.FilesAndFoldersFilter = filter[..^1];
1049+
else if (key == VirtualKey.Back && filter.Length == 1)
1050+
{
1051+
ParentShellPageInstance.ShellViewModel.FilesAndFoldersFilter = string.Empty;
10501052
GeneralSettingsService.ShowFilterHeader = false;
1053+
}
10511054
}
10521055

1053-
if (UserSettingsService.FoldersSettingsService.KeyboardTypingBehavior == KeyboardTypingBehavior.FilterItems)
1056+
if (isFilteringEnabled)
10541057
{
10551058
var jumpedToItem = ParentShellPageInstance!.ShellViewModel.FilesAndFolders
10561059
.FirstOrDefault(f => f.Name?.Contains(ParentShellPageInstance.ShellViewModel.FilesAndFoldersFilter, StringComparison.OrdinalIgnoreCase) == true);

0 commit comments

Comments
 (0)