diff --git a/osu.Game/Localisation/GeneralSettingsStrings.cs b/osu.Game/Localisation/GeneralSettingsStrings.cs
index 42623f4632..83a3af574c 100644
--- a/osu.Game/Localisation/GeneralSettingsStrings.cs
+++ b/osu.Game/Localisation/GeneralSettingsStrings.cs
@@ -44,6 +44,11 @@ namespace osu.Game.Localisation
///
public static LocalisableString CheckUpdate => new TranslatableString(getKey(@"check_update"), @"Check for updates");
+ ///
+ /// "Checking for updates"
+ ///
+ public static LocalisableString CheckingForUpdates => new TranslatableString(getKey(@"checking_for_updates"), @"Checking for updates");
+
///
/// "Open osu! folder"
///
diff --git a/osu.Game/Overlays/Settings/Sections/General/UpdateSettings.cs b/osu.Game/Overlays/Settings/Sections/General/UpdateSettings.cs
index 82cc952e53..53567109e3 100644
--- a/osu.Game/Overlays/Settings/Sections/General/UpdateSettings.cs
+++ b/osu.Game/Overlays/Settings/Sections/General/UpdateSettings.cs
@@ -53,8 +53,16 @@ namespace osu.Game.Overlays.Settings.Sections.General
Action = () =>
{
checkForUpdatesButton.Enabled.Value = false;
+
+ var checkingNotification = new ProgressNotification { Text = GeneralSettingsStrings.CheckingForUpdates, };
+ notifications?.Post(checkingNotification);
+
Task.Run(updateManager.CheckForUpdateAsync).ContinueWith(task => Schedule(() =>
{
+ // This sequence allows the notification to be immediately dismissed.
+ checkingNotification.State = ProgressNotificationState.Cancelled;
+ checkingNotification.Close(false);
+
if (!task.GetResultSafely())
{
notifications?.Post(new SimpleNotification