This is probably where things get a little controversial.
There are some song select flows wherein song select just wants to
ensure sanity by authoritatively setting the global beatmap. The goal is
to change the beatmap immediately and instantly. Therefore it should
kind of be the carousel's job to figure out its grouping complications.
To that end, `CurrentSelection` is made virtual, and overridden in
`BeatmapCarousel` to perform a sort of reconciliation logic. If an
external component sets `CurrentSelection` to a `BeatmapInfo`, one of
the two following things happen:
- Nothing, if the current `GroupedBeatmap` is already a copy of the
beatmap that needs to be selected, or
- The carousel looks at its items, finds any first copy which matches
the beatmap that the external consumer wanted selected, and changes
selection to that instead.
Closes https://github.com/ppy/osu/issues/34126.
I'm not really sure how that issue could have ever happened to begin
with but I can see a way to make it hopefully safer. If it fails again
then it's clearly goblins.
Closes https://github.com/ppy/osu/issues/33748.
I (and tests) can't find any regressions from this. One would hope we
aren't relying on fall-through mouse down anywhere beneath buttons..