Repository navigation
Leave a row its list has let go of out of the control view (#1292) - #1301
Merged
Merged
Conversation
A recycled ListBoxItem whose visibility is bound to its item stays in the visual tree, showing the item it last held. The dump listed it as a row, and a path to it resolved. The collector the dump and resolution share now leaves it out, by #1256's Released test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… search, and test a released row that shows (#1292 review) Co-Authored-By: Claude Opus 5.5 <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.
Closes #1292.
Some lists bind their rows' visibility to the item, as the Properties window's Categorized list does. Once such a list's virtualizing panel has scrolled, it keeps a recycled
ListBoxItemin the visual tree. That row has no owner and no index, still holds the last item it showed, and shows whenever that item does. #1256 stoppedselectmatching one. The dump still listed it as a row, a second copy of an item or a row for one out of view, and a path or an#idreached it.#AutomationIdsearch. Both use select and type_text apply #1069's not-showing rule unevenly: a miss claims rows were scrolled in, the advice under nested collapsed nodes names a hidden node, and type_text picks a ComboBox's hidden TextBox #1256'sReleasedcheck.Releasednow applies only to an items panel's own children. A container written into a template, or set as content, belongs to no list, so it is still listed.Review
One adversarial reviewer, who ran 12 headless probes, including a switch to dump each window with and without the check. No regressions in any IDE view shape.
Releasedhid containers no list generated (aListBoxItemas a template root, or as content), with their subtree#AutomationIdpaths still reached the released rowPathWithingave the list's path for a control inside a released row#idroute, now closedItemsand scrolled out of view are now left outReleasedreads true duringContainerPrepared, and the dump lists rows in visual orderThe reviewer confirmed these were unaffected:
Mutation-checked: removing the collector's skip, the
#idskip or the items-panel condition each fails a test. Unit 3086 and integration 1439 pass.🤖 Generated with Claude Code