diff --git a/osu.Game/Graphics/Cursor/CursorOverrideContainer.cs b/osu.Game/Graphics/Cursor/CursorOverrideContainer.cs
index 58d566c34b..810847349a 100644
--- a/osu.Game/Graphics/Cursor/CursorOverrideContainer.cs
+++ b/osu.Game/Graphics/Cursor/CursorOverrideContainer.cs
@@ -20,23 +20,17 @@ namespace osu.Game.Graphics.Cursor
///
/// Whether any cursors can be displayed.
///
- public bool CanShowCursor = true;
-
- public bool ShowMenuCursor
- {
- get => cursor.ShowCursor;
- set => cursor.ShowCursor = value;
- }
-
- private readonly MenuCursor cursor;
- public CursorContainer Cursor => cursor;
+ internal bool CanShowCursor = true;
+ internal readonly MenuCursor MenuCursor;
+
+ public CursorContainer Cursor => MenuCursor;
public bool ProvidingUserCursor => true;
public CursorOverrideContainer()
{
AddRangeInternal(new Drawable[]
{
- cursor = new MenuCursor { State = Visibility.Hidden },
+ MenuCursor = new MenuCursor { State = Visibility.Hidden },
content = new Container { RelativeSizeAxes = Axes.Both }
});
}
diff --git a/osu.Game/Graphics/ScreenshotManager.cs b/osu.Game/Graphics/ScreenshotManager.cs
index 0d77af8f81..1f4b5cee3e 100644
--- a/osu.Game/Graphics/ScreenshotManager.cs
+++ b/osu.Game/Graphics/ScreenshotManager.cs
@@ -33,15 +33,19 @@ namespace osu.Game.Graphics
private NotificationOverlay notificationOverlay;
private SampleChannel shutter;
- private CursorOverrideContainer cursorOverrideContainer;
+ private readonly MenuCursor menuCursor;
+
+ public ScreenshotManager(MenuCursor menuCursor)
+ {
+ this.menuCursor = menuCursor;
+ }
[BackgroundDependencyLoader]
- private void load(GameHost host, OsuConfigManager config, Storage storage, NotificationOverlay notificationOverlay, AudioManager audio, CursorOverrideContainer cursorOverrideContainer)
+ private void load(GameHost host, OsuConfigManager config, Storage storage, NotificationOverlay notificationOverlay, AudioManager audio)
{
this.host = host;
this.storage = storage.GetStorageForDirectory(@"screenshots");
this.notificationOverlay = notificationOverlay;
- this.cursorOverrideContainer = cursorOverrideContainer;
screenshotFormat = config.GetBindable(OsuSetting.ScreenshotFormat);
captureMenuCursor = config.GetBindable(OsuSetting.ScreenshotCaptureMenuCursor);
@@ -72,7 +76,7 @@ namespace osu.Game.Graphics
if (!captureMenuCursor.Value)
{
- cursorOverrideContainer.ShowMenuCursor = false;
+ menuCursor.ShowCursor = false;
// We need to wait for at most 3 draw nodes to be drawn, following which we can be assured at least one DrawNode has been generated/drawn with the set value
const int frames_to_wait = 3;
@@ -123,7 +127,7 @@ namespace osu.Game.Graphics
base.Update();
if (Interlocked.CompareExchange(ref screenShotTasks, 0, 0) == 0)
- cursorOverrideContainer.ShowMenuCursor = true;
+ menuCursor.ShowCursor = true;
}
private string getFileName()
diff --git a/osu.Game/OsuGame.cs b/osu.Game/OsuGame.cs
index 89447b8ed6..b95def9c73 100644
--- a/osu.Game/OsuGame.cs
+++ b/osu.Game/OsuGame.cs
@@ -239,7 +239,7 @@ namespace osu.Game
loadComponentSingleFile(volume = new VolumeOverlay(), overlayContent.Add);
loadComponentSingleFile(onscreenDisplay = new OnScreenDisplay(), Add);
- loadComponentSingleFile(new ScreenshotManager(), Add);
+ loadComponentSingleFile(new ScreenshotManager(CursorOverrideContainer.MenuCursor), Add);
//overlay elements
loadComponentSingleFile(direct = new DirectOverlay { Depth = -1 }, mainContent.Add);
diff --git a/osu.Game/OsuGameBase.cs b/osu.Game/OsuGameBase.cs
index ac5e300f16..54a279e977 100644
--- a/osu.Game/OsuGameBase.cs
+++ b/osu.Game/OsuGameBase.cs
@@ -214,7 +214,7 @@ namespace osu.Game
GlobalActionContainer globalBinding;
- dependencies.Cache(CursorOverrideContainer = new CursorOverrideContainer { RelativeSizeAxes = Axes.Both });
+ CursorOverrideContainer = new CursorOverrideContainer { RelativeSizeAxes = Axes.Both };
CursorOverrideContainer.Child = globalBinding = new GlobalActionContainer(this)
{
RelativeSizeAxes = Axes.Both,