diff --git a/osu.Game/Screens/Ranking/ResultsScreen.cs b/osu.Game/Screens/Ranking/ResultsScreen.cs
index 133efd6e7b..193d975e42 100644
--- a/osu.Game/Screens/Ranking/ResultsScreen.cs
+++ b/osu.Game/Screens/Ranking/ResultsScreen.cs
@@ -236,13 +236,11 @@ namespace osu.Game.Screens.Ranking
scorePanelList.Detach(expandedPanel);
detachedPanelContainer.Add(expandedPanel);
- // Move into its original location in the local container.
+ // Move into its original location in the local container first, then to the final location.
var origLocation = detachedPanelContainer.ToLocalSpace(screenSpacePos);
- expandedPanel.MoveTo(origLocation);
- expandedPanel.MoveToX(origLocation.X);
-
- // Move into the final location.
- expandedPanel.MoveToX(StatisticsPanel.SIDE_PADDING, 150, Easing.OutQuint);
+ expandedPanel.MoveTo(origLocation)
+ .Then()
+ .MoveTo(new Vector2(StatisticsPanel.SIDE_PADDING, origLocation.Y), 150, Easing.OutQuint);
// Hide contracted panels.
foreach (var contracted in scorePanelList.GetScorePanels().Where(p => p.State == PanelState.Contracted))
@@ -262,13 +260,11 @@ namespace osu.Game.Screens.Ranking
detachedPanelContainer.Remove(detachedPanel);
scorePanelList.Attach(detachedPanel);
- // Move into its original location in the attached container.
+ // Move into its original location in the attached container first, then to the final location.
var origLocation = detachedPanel.Parent.ToLocalSpace(screenSpacePos);
- detachedPanel.MoveTo(origLocation);
- detachedPanel.MoveToX(origLocation.X);
-
- // Move into the final location.
- detachedPanel.MoveToX(0, 150, Easing.OutQuint);
+ detachedPanel.MoveTo(origLocation)
+ .Then()
+ .MoveTo(new Vector2(0, origLocation.Y), 150, Easing.OutQuint);
// Show contracted panels.
foreach (var contracted in scorePanelList.GetScorePanels().Where(p => p.State == PanelState.Contracted))
diff --git a/osu.Game/Screens/Ranking/ScorePanelList.cs b/osu.Game/Screens/Ranking/ScorePanelList.cs
index 9ebd7822c0..0f8bc82ac0 100644
--- a/osu.Game/Screens/Ranking/ScorePanelList.cs
+++ b/osu.Game/Screens/Ranking/ScorePanelList.cs
@@ -202,7 +202,7 @@ namespace osu.Game.Screens.Ranking
/// If is not a part of this .
public void Detach(ScorePanel panel)
{
- var container = flow.FirstOrDefault(t => t.Panel == panel);
+ var container = flow.SingleOrDefault(t => t.Panel == panel);
if (container == null)
throw new InvalidOperationException("Panel is not contained by the score panel list.");
@@ -216,7 +216,7 @@ namespace osu.Game.Screens.Ranking
/// If is not a part of this .
public void Attach(ScorePanel panel)
{
- var container = flow.FirstOrDefault(t => t.Panel == panel);
+ var container = flow.SingleOrDefault(t => t.Panel == panel);
if (container == null)
throw new InvalidOperationException("Panel is not contained by the score panel list.");