From 8b1876bc2a3341e4151123f9e56e1e8eec6e63a9 Mon Sep 17 00:00:00 2001 From: Derrick Timmermans Date: Wed, 7 Jul 2021 11:43:54 +0200 Subject: [PATCH] Disallow removing items from SelectionCycleFillFlowContainer --- .../SelectionCycleFillFlowContainer.cs | 23 ++----------------- 1 file changed, 2 insertions(+), 21 deletions(-) diff --git a/osu.Game/Graphics/Containers/SelectionCycleFillFlowContainer.cs b/osu.Game/Graphics/Containers/SelectionCycleFillFlowContainer.cs index 656f489772..cef903f63e 100644 --- a/osu.Game/Graphics/Containers/SelectionCycleFillFlowContainer.cs +++ b/osu.Game/Graphics/Containers/SelectionCycleFillFlowContainer.cs @@ -2,7 +2,6 @@ // See the LICENCE file in the repository root for full licence text. using System; -using System.Collections.Generic; using System.Diagnostics; using osu.Framework; using osu.Framework.Graphics; @@ -21,8 +20,6 @@ namespace osu.Game.Graphics.Containers private int? selectedIndex; - private readonly Dictionary> handlerMap = new Dictionary>(); - public void SelectNext() { if (!selectedIndex.HasValue || selectedIndex == Count - 1) @@ -57,28 +54,12 @@ namespace osu.Game.Graphics.Containers Debug.Assert(drawable != null); - // This event is used to update selection state when modified within the drawable itself. - // It is added to a dictionary so that we can unsubscribe if the drawable is removed from this container - handlerMap[drawable] = state => selectionChanged(drawable, state); - - drawable.StateChanged += handlerMap[drawable]; + drawable.StateChanged += state => selectionChanged(drawable, state); } public override bool Remove(T drawable) - { - if (!base.Remove(drawable)) - return false; + => throw new NotSupportedException($"Cannot remove drawables from {nameof(SelectionCycleFillFlowContainer)}"); - Debug.Assert(drawable != null); - - if (handlerMap.TryGetValue(drawable, out var action)) - { - drawable.StateChanged -= action; - handlerMap.Remove(drawable); - } - - return true; - } private void setSelected(int? value) {