CloneWith / osu

Another osu! client fork, tailored for tournament hosting
https://osu.ppy.sh
MIT License
1 stars 0 forks source link

Dialog popups: One Drawable for multiple Containers? #36

Closed CloneWith closed 2 months ago

CloneWith commented 2 months ago

When triggering the revert dialog too much times and too fast, osu!lazer would freeze with the following log:

2024-09-19 13:48:48 [error]: System.InvalidOperationException: May not add a drawable to multiple containers.
2024-09-19 13:48:48 [error]: at osu.Framework.Graphics.Containers.CompositeDrawable.AddInternal(Drawable drawable)
2024-09-19 13:48:48 [error]: at osu.Game.Tournament.Screens.Board.BoardScreen.<load>b__38_13()
2024-09-19 13:48:48 [error]: at osu.Framework.Graphics.Containers.ClickableContainer.OnClick(ClickEvent e)
2024-09-19 13:48:48 [error]: at osu.Game.Graphics.UserInterface.OsuButton.OnClick(ClickEvent e) in E:\Projects\osu\osu.Game\Graphics\UserInterface\OsuButton.cs:line 143
2024-09-19 13:48:48 [error]: at osu.Framework.Graphics.Drawable.TriggerEvent(UIEvent e)
2024-09-19 13:48:48 [error]: at osu.Framework.Input.ButtonEventManager`1.PropagateButtonEvent(IEnumerable`1 drawables, UIEvent e)
2024-09-19 13:48:48 [error]: at osu.Framework.Input.MouseButtonEventManager.handleClick(InputState state, List`1 targets)
2024-09-19 13:48:48 [error]: at osu.Framework.Input.MouseButtonEventManager.HandleButtonUp(InputState state, List`1 targets)
2024-09-19 13:48:48 [error]: at osu.Framework.Input.InputManager.HandleMouseButtonStateChange(ButtonStateChangeEvent`1 e)
2024-09-19 13:48:48 [error]: at osu.Framework.Input.UserInputManager.HandleInputStateChange(InputStateChangeEvent inputStateChange)
2024-09-19 13:48:48 [error]: at osu.Framework.Input.StateChanges.ButtonInput`1.Apply(InputState state, IInputStateChangeHandler handler)
2024-09-19 13:48:48 [error]: at osu.Framework.Input.InputManager.Update()
2024-09-19 13:48:48 [error]: at osu.Framework.Input.PassThroughInputManager.Update()
2024-09-19 13:48:48 [error]: at osu.Framework.Graphics.Drawable.UpdateSubTree()
2024-09-19 13:48:48 [error]: at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
2024-09-19 13:48:48 [error]: at osu.Framework.Platform.GameHost.UpdateFrame()
2024-09-19 13:48:48 [error]: at osu.Framework.Threading.GameThread.processFrame()
2024-09-19 13:48:48 [verbose]: Unhandled exception has been allowed with 0 more allowable exceptions.
2024-09-19 13:48:48 [verbose]: Focus contention triggered by DialogOverlay.
2024-09-19 13:48:49 [error]: An unhandled error has occurred.
2024-09-19 13:48:49 [error]: System.InvalidOperationException: May not add a drawable to multiple containers.
2024-09-19 13:48:49 [error]: at osu.Framework.Graphics.Containers.CompositeDrawable.AddInternal(Drawable drawable)
2024-09-19 13:48:49 [error]: at osu.Game.Tournament.Screens.Board.BoardScreen.<load>b__38_13()
2024-09-19 13:48:49 [error]: at osu.Framework.Graphics.Containers.ClickableContainer.OnClick(ClickEvent e)
2024-09-19 13:48:49 [error]: at osu.Game.Graphics.UserInterface.OsuButton.OnClick(ClickEvent e) in E:\Projects\osu\osu.Game\Graphics\UserInterface\OsuButton.cs:line 143
2024-09-19 13:48:49 [error]: at osu.Framework.Graphics.Drawable.TriggerEvent(UIEvent e)
2024-09-19 13:48:49 [error]: at osu.Framework.Input.ButtonEventManager`1.PropagateButtonEvent(IEnumerable`1 drawables, UIEvent e)
2024-09-19 13:48:49 [error]: at osu.Framework.Input.MouseButtonEventManager.handleClick(InputState state, List`1 targets)
2024-09-19 13:48:49 [error]: at osu.Framework.Input.MouseButtonEventManager.HandleButtonUp(InputState state, List`1 targets)
2024-09-19 13:48:49 [error]: at osu.Framework.Input.InputManager.HandleMouseButtonStateChange(ButtonStateChangeEvent`1 e)
2024-09-19 13:48:49 [error]: at osu.Framework.Input.UserInputManager.HandleInputStateChange(InputStateChangeEvent inputStateChange)
2024-09-19 13:48:49 [error]: at osu.Framework.Input.StateChanges.ButtonInput`1.Apply(InputState state, IInputStateChangeHandler handler)
2024-09-19 13:48:49 [error]: at osu.Framework.Input.InputManager.Update()
2024-09-19 13:48:49 [error]: at osu.Framework.Input.PassThroughInputManager.Update()
2024-09-19 13:48:49 [error]: at osu.Framework.Graphics.Drawable.UpdateSubTree()
2024-09-19 13:48:49 [error]: at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
2024-09-19 13:48:49 [error]: at osu.Framework.Platform.GameHost.UpdateFrame()
2024-09-19 13:48:49 [error]: at osu.Framework.Threading.GameThread.processFrame()
2024-09-19 13:48:49 [verbose]: Too many unhandled exceptions, crashing out.
CloneWith commented 2 months ago

Resolved in the latest commit.