@@ -316,7 +316,22 @@ await DialogDisplayHelper.ShowDialogAsync(Strings.InvalidCommand.GetLocalizedRes
316316 // Search mode
317317 else if ( mode == OmnibarSearchMode )
318318 {
319- ContentPageContext . ShellPage ? . SubmitSearch ( args . Text ) ;
319+ var shellPage = ContentPageContext . ShellPage ;
320+
321+ if ( args . Item is SuggestionModel item && ! string . IsNullOrWhiteSpace ( item . ItemPath ) && shellPage is not null )
322+ await NavigationHelpers . OpenPath ( item . ItemPath , shellPage ) ;
323+ else
324+ {
325+ var searchQuery = args . Item is SuggestionModel x && ! string . IsNullOrWhiteSpace ( x . Name )
326+ ? x . Name
327+ : args . Text ;
328+
329+ shellPage ? . SubmitSearch ( searchQuery ) ; // use the resolved shellPage for consistency
330+ ViewModel . SaveSearchQueryToList ( searchQuery ) ;
331+ }
332+
333+ ( MainPageViewModel . SelectedTabItem ? . TabItemContent as Control ) ? . Focus ( FocusState . Programmatic ) ;
334+ return ;
320335 }
321336 }
322337
@@ -338,6 +353,7 @@ await DispatcherQueue.EnqueueOrInvokeAsync(() =>
338353 }
339354 else if ( Omnibar . CurrentSelectedMode == OmnibarSearchMode )
340355 {
356+ await ViewModel . PopulateOmnibarSuggestionsForSearchMode ( ) ;
341357 }
342358 }
343359
@@ -456,7 +472,12 @@ await DispatcherQueue.EnqueueOrInvokeAsync(() =>
456472 }
457473 else if ( e . NewMode == OmnibarSearchMode )
458474 {
475+ if ( ! ViewModel . InstanceViewModel . IsPageTypeSearchResults )
476+ ViewModel . OmnibarSearchModeText = string . Empty ;
477+ else
478+ ViewModel . OmnibarSearchModeText = ViewModel . InstanceViewModel . CurrentSearchQuery ;
459479
480+ await ViewModel . PopulateOmnibarSuggestionsForSearchMode ( ) ;
460481 }
461482 }
462483
@@ -486,7 +507,7 @@ await DispatcherQueue.EnqueueOrInvokeAsync(() =>
486507 }
487508 else if ( Omnibar . CurrentSelectedMode == OmnibarSearchMode )
488509 {
489-
510+ await ViewModel . PopulateOmnibarSuggestionsForSearchMode ( ) ;
490511 }
491512 }
492513 }
0 commit comments