osu/osu.Game/Overlays/Toolbar/ToolbarUserArea.cs
Thomas Müller ba38a27274 Fix incorrect sizing of login button.
When logging in or out the size of the login button would not correctly update,
resulting in a messed-up flow of toolbar buttons. This branch fixes the problem
by avoiding an invalidation-chain-breaking override of Size. Instead, the loginOverlay
bypasses auto sizing by using a new framework feature.
2017-02-05 15:17:54 +01:00

46 lines
1.3 KiB
C#

//Copyright (c) 2007-2016 ppy Pty Ltd <contact@ppy.sh>.
//Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Primitives;
using OpenTK;
namespace osu.Game.Overlays.Toolbar
{
class ToolbarUserArea : Container
{
private LoginOverlay loginOverlay;
private ToolbarUserButton button;
public override RectangleF BoundingBox => button.BoundingBox;
public override bool Contains(Vector2 screenSpacePos) => true;
public ToolbarUserArea()
{
RelativeSizeAxes = Axes.Y;
AutoSizeAxes = Axes.X;
Children = new Drawable[] {
button = new ToolbarUserButton
{
Action = toggle,
},
loginOverlay = new LoginOverlay
{
BypassAutoSizeAxes = Axes.Both,
Position = new Vector2(0, 1),
RelativePositionAxes = Axes.Y,
Anchor = Anchor.TopRight,
Origin = Anchor.TopRight,
}
};
}
private void toggle()
{
loginOverlay.ToggleVisibility();
}
}
}