Repository navigation
Fix: Details layout rows render empty in grouped folders - #103
Merged
Merged
Conversation
…ences The Linux layout database serialized DetailsLayoutColumnItem.UserLength, a GridLength that System.Text.Json cannot read back. On load it was written after UserLengthPixels and reset every column width to 0, so Details rows showed only the icon and a clipped name, and the zero widths were saved again. Persist the width only through UserLengthPixels and restore non-positive widths already saved by earlier builds to the default column widths. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LeKXJc3DnK3PzAqwgA72NY
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.
Resolved / Related Issues
Root cause
Grouping and grouped virtualization (#96, #100) are not involved. The Linux layout preferences database (
layoutpreferences.json) serializedDetailsLayoutColumnItem.UserLength, which is aGridLength. System.Text.Json writes it as{IsAbsolute, IsAuto, IsStar}with no value. On load,UserLengthcomes afterUserLengthPixels, so it overwrote every column width withdefault(GridLength)(Auto, 0).The row template binds cell widths to
LengthIncludingGridSplitterPixels, which came out as 0 or 12 px, so the cells collapsed. The header usesGridLengthdirectly and still looked right. The zero widths were then saved back, so the folder stayed broken. Any folder whose preferences were loaded from disk hit this. The reported Downloads entry had zero widths and no grouping (it was saved before #96 restored the grouping default), which is why no group header appeared.Fix
UserLengthis now[JsonIgnore](it was already[RegistryIgnore]). The width is persisted only throughUserLengthPixels.Steps used to test these changes
All runs used
headless-run.shwith a sandboxed HOME andFILES_SANDBOX_DRIVES=scripts/linux/showcase-drives.txt. Downloads was seeded with 380 long-named folders and 35 files, with modification dates spread over about 400 days, and the app started directly in Downloads.UserLengthPixels: 0.UserLength.tests/Files.Platform.Tests: 1055 total, 1048 passed, 7 skipped, 0 failed. Desktop app build succeeded.🤖 Generated with Claude Code
https://claude.ai/code/session_01LeKXJc3DnK3PzAqwgA72NY