Fix search auto-selecting wrong item before programs finish loading#2451
Merged
Conversation
…result selection When search results refresh mid-collection, OnRefresh auto-selects the first result item. If programs haven't loaded yet, Settings category appears first and gets selected. If user hits Enter in that window, wrong item launches. Skip auto-select when search is still in progress and no programs have been found yet. Next refresh after programs load will select correctly. Fixes Open-Shell#456 Fixes Open-Shell#1982 Fixes Open-Shell#4 > 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
|
✅ Build Open-Shell-Menu 4.4.198-uovmlrdi completed (commit f5cd9d43d4 by @nnyj) |
ge0rdi
approved these changes
Apr 18, 2026
Member
|
Looks good to me. |
zcomputerwiz
pushed a commit
to zcomputerwiz/Open-Shell-Menu
that referenced
this pull request
May 9, 2026
…pen-Shell#2451) fix: defer auto-select until programs loaded to prevent wrong search result selection When search results refresh mid-collection, OnRefresh auto-selects the first result item. If programs haven't loaded yet, Settings category appears first and gets selected. If user hits Enter in that window, wrong item launches. Skip auto-select when search is still in progress and no programs have been found yet. Next refresh after programs load will select correctly. Fixes Open-Shell#456 Fixes Open-Shell#1982 Fixes Open-Shell#4 > 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
OnRefresh(), no behavior change once search completesRelated Issues
Related to #456 — typing program name fast sometimes launches wrong program
Related to #1982 — search results reorder while user tries to select (mouse interaction, different code path)
Related to #4 — search results shift mid-click (same as #1982)
Problem
When typing fast in the search box (e.g.
sc), the UI refreshes with partial results. Programs take ~220ms to collect from Start Menu folders. During that window, if only Settings/Control Panel results are available,OnRefresh()blindly auto-selects the first result, which is a Settings item. If the user hits Enter before programs finish loading, the wrong item launches.The root cause is an early
RefreshSearch()call inSearchThread()that fires before program collection begins (whenm_ProgramItemsOldis not empty). This pushes stale/filtered results to the UI, andOnRefresh()auto-selectsm_OriginalCount+1without checking whether programs have loaded.Fix
In
MenuContainer.cppOnRefresh(), defer auto-selection when search is still in progress and no programs have been found yet. The cursor stays unset until the next refresh after programs load, which then selects correctly.Evidence
Before (wrong auto-select on Settings):
search_bug_before.mp4
After (waits for Programs before selecting):
search_bug_after.mp4
Test plan
scrapidly in search box, verify Programs category selected first