diff --git a/mRemoteNG/App/Startup.cs b/mRemoteNG/App/Startup.cs index f00b85a6d..11d3db47d 100644 --- a/mRemoteNG/App/Startup.cs +++ b/mRemoteNG/App/Startup.cs @@ -84,10 +84,8 @@ namespace mRemoteNG.App try { await _appUpdate.GetUpdateInfoAsync(); - if (_appUpdate.IsUpdateAvailable()) - { - Windows.Show(WindowType.Update); - } + // Update is available, but don't show the panel automatically at startup + // User can check for updates manually via Help > Check for Updates menu } catch (Exception ex) { diff --git a/mRemoteNG/App/Windows.cs b/mRemoteNG/App/Windows.cs index 96c57da2b..9cc30a269 100644 --- a/mRemoteNG/App/Windows.cs +++ b/mRemoteNG/App/Windows.cs @@ -26,7 +26,7 @@ namespace mRemoteNG.App internal static ConfigWindow ConfigForm { get; set; } = new ConfigWindow(); internal static ErrorAndInfoWindow ErrorsForm { get; set; } = new ErrorAndInfoWindow(); - private static UpdateWindow UpdateForm { get; set; } = new UpdateWindow(); + internal static UpdateWindow UpdateForm { get; set; } = new UpdateWindow(); internal static SSHTransferWindow SshtransferForm { get; private set; } = new SSHTransferWindow(); internal static OptionsWindow OptionsFormWindow { get; private set; } diff --git a/mRemoteNG/UI/Forms/OptionsPages/UpdatesPage.cs b/mRemoteNG/UI/Forms/OptionsPages/UpdatesPage.cs index 491c9608e..e0849421f 100644 --- a/mRemoteNG/UI/Forms/OptionsPages/UpdatesPage.cs +++ b/mRemoteNG/UI/Forms/OptionsPages/UpdatesPage.cs @@ -215,9 +215,14 @@ namespace mRemoteNG.UI.Forms.OptionsPages InitialiseCheckForUpdatesOnStartupComboBox(); } - private void btnUpdateCheckNow_Click(object sender, EventArgs e) + private async void btnUpdateCheckNow_Click(object sender, EventArgs e) { App.Windows.Show(WindowType.Update); + var updateWindow = App.Windows.UpdateForm; + if (updateWindow != null && !updateWindow.IsDisposed) + { + await updateWindow.PerformUpdateCheckAsync(); + } } private void chkUseProxyForAutomaticUpdates_CheckedChanged(object sender, EventArgs e) diff --git a/mRemoteNG/UI/Menu/msMain/HelpMenu.cs b/mRemoteNG/UI/Menu/msMain/HelpMenu.cs index a1ab363ec..b003a4af1 100644 --- a/mRemoteNG/UI/Menu/msMain/HelpMenu.cs +++ b/mRemoteNG/UI/Menu/msMain/HelpMenu.cs @@ -145,7 +145,15 @@ namespace mRemoteNG.UI.Menu #region Info - private void mMenToolsUpdate_Click(object sender, EventArgs e) => App.Windows.Show(WindowType.Update); + private async void mMenToolsUpdate_Click(object sender, EventArgs e) + { + App.Windows.Show(WindowType.Update); + var updateWindow = App.Windows.UpdateForm; + if (updateWindow != null && !updateWindow.IsDisposed) + { + await updateWindow.PerformUpdateCheckAsync(); + } + } private void mMenInfoHelp_Click(object sender, EventArgs e) => Process.Start("explorer.exe", GeneralAppInfo.UrlDocumentation); diff --git a/mRemoteNG/UI/Window/UpdateWindow.cs b/mRemoteNG/UI/Window/UpdateWindow.cs index eb8267213..9ff6eaea1 100644 --- a/mRemoteNG/UI/Window/UpdateWindow.cs +++ b/mRemoteNG/UI/Window/UpdateWindow.cs @@ -35,6 +35,15 @@ namespace mRemoteNG.UI.Window FontOverrider.FontOverride(this); } + /// + /// Checks for updates and displays the results in the window. + /// Call this method when you want to trigger an update check. + /// + public async Task PerformUpdateCheckAsync() + { + await CheckForUpdateAsync(); + } + #endregion #region Form Stuff @@ -44,7 +53,6 @@ namespace mRemoteNG.UI.Window ApplyTheme(); ThemeManager.getInstance().ThemeChanged += ApplyTheme; ApplyLanguage(); - await CheckForUpdateAsync(); } private new void ApplyTheme()