osu icon indicating copy to clipboard operation
osu copied to clipboard

Add support for traversing and toggling expanded state of song select groups

Open peppy opened this issue 6 months ago • 3 comments

This adds back some keys which users have learned to depend on (and I have forgotten ever existed).

  • Shift + Left / Right now allows traversing between groups
  • Shift + Enter now toggles the expanded state for the current group

This also changes the behaviour such that when you open a group which contains the currently selected beatmap, keyboard selection (and scroll target) will be transferred to it.

https://github.com/user-attachments/assets/6d337beb-1d93-46e1-82fc-36dfecfc0246


Closes #33599. Closes #33617.

peppy avatar Jun 12 '25 10:06 peppy

Would you be okay with the flash occurring in both directions (consistently) but no expansion changes happening? I think that would be my preferred behaviour.

peppy avatar Jun 12 '25 11:06 peppy

No real preference so long as it's consistent.

bdach avatar Jun 12 '25 11:06 bdach

I've fixed the issues pointed out. This changed some already tested behaviour, which has been updated. In the cases you found, there will now be no selection change.

peppy avatar Jun 17 '25 11:06 peppy

Some weird behaviour with filtering here still:

https://github.com/user-attachments/assets/8021346b-b08f-4ada-8487-0cae90aa1346

Steps are roughly:

  • Start with the globally selected beatmap in one group
  • Apply filter wherein the globally selected beatmap is not in results
  • Start traversing groups
  • Unapply filter
  • Traverse group in any direction
  • Traversal will continue from the group containing the globally selected beatmap rather than the group you were last on with the filter applied

bdach avatar Jun 18 '25 16:06 bdach

Steps are roughly:

Start with the globally selected beatmap in one group Apply filter wherein the globally selected beatmap is not in results Start traversing groups Unapply filter Traverse group in any direction Traversal will continue from the group containing the globally selected beatmap rather than the group you were last on with the filter applied

What's your expectation here? Should keyboard selection not reset in this scenario? If so, it's going to be bundled into the absolute CLUSTERFUCK that is this issue which i'm attempting to fix here (will as far as I can tell will already solve this case, see changes in SelectedItem_Set which avoid keyboard selection being changed on noop change).

Given how edge case this is, I think we should wait for a user to raise it and not address here. As I know it's going to be a complicated one to resolve.

peppy avatar Jun 19 '25 09:06 peppy

Given how edge case this is, I think we should wait for a user to raise it and not address here. As I know it's going to be a complicated one to resolve.

I'm okay ignoring it until raised by someone else, sure.

bdach avatar Jun 19 '25 09:06 bdach