diff --git a/osu.Game/Screens/SelectV2/BeatmapCarousel.cs b/osu.Game/Screens/SelectV2/BeatmapCarousel.cs
index aca71efe93..630f7b6583 100644
--- a/osu.Game/Screens/SelectV2/BeatmapCarousel.cs
+++ b/osu.Game/Screens/SelectV2/BeatmapCarousel.cs
@@ -124,15 +124,6 @@ namespace osu.Game.Screens.SelectV2
}
}
- protected override void HandleItemActivated(CarouselItem item)
- {
- base.HandleItemActivated(item);
-
- // TODO: maybe this should be handled by the panel itself?
- if (GetMaterialisedDrawableForItem(item) is BeatmapCarouselPanel drawable)
- drawable.FlashFromActivation();
- }
-
#endregion
#region Filtering
diff --git a/osu.Game/Screens/SelectV2/BeatmapCarouselPanel.cs b/osu.Game/Screens/SelectV2/BeatmapCarouselPanel.cs
index 9219656365..398ec7bf4c 100644
--- a/osu.Game/Screens/SelectV2/BeatmapCarouselPanel.cs
+++ b/osu.Game/Screens/SelectV2/BeatmapCarouselPanel.cs
@@ -123,7 +123,7 @@ namespace osu.Game.Screens.SelectV2
public double DrawYPosition { get; set; }
- public void FlashFromActivation()
+ public void Activated()
{
activationFlash.FadeOutFromOne(500, Easing.OutQuint);
}
diff --git a/osu.Game/Screens/SelectV2/Carousel.cs b/osu.Game/Screens/SelectV2/Carousel.cs
index 6899c10451..6ff27c6198 100644
--- a/osu.Game/Screens/SelectV2/Carousel.cs
+++ b/osu.Game/Screens/SelectV2/Carousel.cs
@@ -109,7 +109,10 @@ namespace osu.Game.Screens.SelectV2
}
if (currentSelection.CarouselItem != null)
+ {
+ (GetMaterialisedDrawableForItem(currentSelection.CarouselItem) as ICarouselPanel)?.Activated();
HandleItemActivated(currentSelection.CarouselItem);
+ }
}
#endregion
diff --git a/osu.Game/Screens/SelectV2/ICarouselPanel.cs b/osu.Game/Screens/SelectV2/ICarouselPanel.cs
index 2776fdec6c..a956bb22a3 100644
--- a/osu.Game/Screens/SelectV2/ICarouselPanel.cs
+++ b/osu.Game/Screens/SelectV2/ICarouselPanel.cs
@@ -23,6 +23,11 @@ namespace osu.Game.Screens.SelectV2
///
BindableBool KeyboardSelected { get; }
+ ///
+ /// Called when the panel is activated. Should be used to update the panel's visual state.
+ ///
+ void Activated();
+
///
/// The Y position used internally for positioning in the carousel.
///