mirror of
https://github.com/ppy/osu.git
synced 2024-11-06 09:07:25 +08:00
Avoid accessing DrawWidth
from invalidation
This commit is contained in:
parent
f703c5f038
commit
e02863f780
@ -2,6 +2,7 @@
|
|||||||
// See the LICENCE file in the repository root for full licence text.
|
// See the LICENCE file in the repository root for full licence text.
|
||||||
|
|
||||||
using osu.Framework.Allocation;
|
using osu.Framework.Allocation;
|
||||||
|
using osu.Framework.Caching;
|
||||||
using osu.Framework.Extensions.EnumExtensions;
|
using osu.Framework.Extensions.EnumExtensions;
|
||||||
using osu.Framework.Graphics;
|
using osu.Framework.Graphics;
|
||||||
using osu.Framework.Graphics.Containers;
|
using osu.Framework.Graphics.Containers;
|
||||||
@ -25,6 +26,11 @@ namespace osu.Game.Overlays
|
|||||||
private const int header_height = 30;
|
private const int header_height = 30;
|
||||||
private const int corner_radius = 5;
|
private const int corner_radius = 5;
|
||||||
|
|
||||||
|
private const float fade_duration = 800;
|
||||||
|
private const float inactive_alpha = 0.5f;
|
||||||
|
|
||||||
|
private readonly Cached headerTextVisibilityCache = new Cached();
|
||||||
|
|
||||||
private readonly FillFlowContainer content;
|
private readonly FillFlowContainer content;
|
||||||
private readonly IconButton button;
|
private readonly IconButton button;
|
||||||
|
|
||||||
@ -131,19 +137,24 @@ namespace osu.Game.Overlays
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
private const float fade_duration = 800;
|
|
||||||
private const float inactive_alpha = 0.5f;
|
|
||||||
|
|
||||||
protected override bool OnInvalidate(Invalidation invalidation, InvalidationSource source)
|
protected override bool OnInvalidate(Invalidation invalidation, InvalidationSource source)
|
||||||
{
|
{
|
||||||
// These toolbox grouped may be contracted to only show icons.
|
|
||||||
// For now, let's hide the header to avoid text truncation weirdness in such cases.
|
|
||||||
if (invalidation.HasFlagFast(Invalidation.DrawSize))
|
if (invalidation.HasFlagFast(Invalidation.DrawSize))
|
||||||
headerText.FadeTo(headerText.DrawWidth < DrawWidth ? 1 : 0, 150, Easing.OutQuint);
|
headerTextVisibilityCache.Invalidate();
|
||||||
|
|
||||||
return base.OnInvalidate(invalidation, source);
|
return base.OnInvalidate(invalidation, source);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override void Update()
|
||||||
|
{
|
||||||
|
base.Update();
|
||||||
|
|
||||||
|
if (!headerTextVisibilityCache.IsValid)
|
||||||
|
// These toolbox grouped may be contracted to only show icons.
|
||||||
|
// For now, let's hide the header to avoid text truncation weirdness in such cases.
|
||||||
|
headerText.FadeTo(headerText.DrawWidth < DrawWidth ? 1 : 0, 150, Easing.OutQuint);
|
||||||
|
}
|
||||||
|
|
||||||
protected override void LoadComplete()
|
protected override void LoadComplete()
|
||||||
{
|
{
|
||||||
base.LoadComplete();
|
base.LoadComplete();
|
||||||
|
Loading…
Reference in New Issue
Block a user