Fix random selection not showing selection when all groups are collapsed#36404
Fix random selection not showing selection when all groups are collapsed#36404bdach merged 8 commits intoppy:masterfrom
Conversation
…apsing group with current selection" This reverts commit 9ba9966.
… user manually collapsed them" This reverts commit bc4d5d0.
This avoids the implicit group expansion happening that the added code was attempting to fix.
This is not required to fix the issue, but it is required for my brain to follow the method to some degress.
56e94d6 to
46b2d53
Compare
|
I don't understand this diff at all. 8860eec replaces a but then... 46b2d53 reverts to using |
This part was just tidying up. The important part is the removal of the final The final diff makes more sense to me because we're calling just |
|
I was unconvinced so I went fishing and found an apparent regression:
doesn't appear to happen on master. Screen.Recording.2026-01-21.at.09.52.48.movappears to be failing on the following guard: |
|
I haven't made a test for your provided case yet, but I've hopefully fixed it. Will add a test tomorrow. I'm pretty happy with the latest diff. |
3a391d7 to
6354286
Compare
|
Added test coverage of failing scenario. |
bdach
left a comment
There was a problem hiding this comment.
can't seem to break this anymore. at the same time I also expect someone to find some breakage and this to require another fix on top, but we can add unit tests ad nauseam until hopefully a stable equilibrium is reached 🤷
I'm not sure how this will hold out. I can't really explain it in a better way. I've tried about 10 other different iterations of this. I don't like this fix. If this is not mergeable I'll probably look to see if I can rewrite the expanded set state handling, because it's just ass right now. - Regressed in ppy#36404. - Closes ppy#36445. - Supersedes and closes ppy#36456.
Closes #36365.
This reverts a previous fix (#35163 plus follow-up regression fix) and applies a hopefully more permanent fix which doesn't affect other scenarios.
I also did some refactoring, which is in the last commit. It can be skipped or applied separately as preferred (but without it I have trouble understanding the fix I made here).
Note that I'm still dealing with surrounding flaky tests and only pushing this PR out to see how production CI responds. It should be considered a functional RFC.