1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-11 15:07:44 +08:00

Merge remote-tracking branch 'refs/remotes/ppy/master' into dashboard-news

This commit is contained in:
Andrei Zavatski 2020-08-12 11:15:58 +03:00
commit 9b112baa88

View File

@ -683,9 +683,8 @@ namespace osu.Game
{ {
overlay.State.ValueChanged += state => overlay.State.ValueChanged += state =>
{ {
if (state.NewValue == Visibility.Hidden) return; if (state.NewValue != Visibility.Hidden)
showOverlayAboveOthers(overlay, informationalOverlays);
informationalOverlays.Where(o => o != overlay).ForEach(o => o.Hide());
}; };
} }
@ -699,12 +698,8 @@ namespace osu.Game
// informational overlays should be dismissed on a show or hide of a full overlay. // informational overlays should be dismissed on a show or hide of a full overlay.
informationalOverlays.ForEach(o => o.Hide()); informationalOverlays.ForEach(o => o.Hide());
if (state.NewValue == Visibility.Hidden) return; if (state.NewValue != Visibility.Hidden)
showOverlayAboveOthers(overlay, singleDisplayOverlays);
singleDisplayOverlays.Where(o => o != overlay).ForEach(o => o.Hide());
if (!overlay.IsPresent)
overlayContent.ChangeChildDepth(overlay, (float)-Clock.CurrentTime);
}; };
} }
@ -729,6 +724,15 @@ namespace osu.Game
notifications.State.ValueChanged += _ => updateScreenOffset(); notifications.State.ValueChanged += _ => updateScreenOffset();
} }
private void showOverlayAboveOthers(OverlayContainer overlay, OverlayContainer[] otherOverlays)
{
otherOverlays.Where(o => o != overlay).ForEach(o => o.Hide());
// show above others if not visible at all, else leave at current depth.
if (!overlay.IsPresent)
overlayContent.ChangeChildDepth(overlay, (float)-Clock.CurrentTime);
}
public class GameIdleTracker : IdleTracker public class GameIdleTracker : IdleTracker
{ {
private InputManager inputManager; private InputManager inputManager;