From 9bf714b6ba513b9a1374e8ac4191482f5425cf9b Mon Sep 17 00:00:00 2001 From: Aireil <33433913+Aireil@users.noreply.github.com> Date: Tue, 13 Sep 2022 17:39:30 +0200 Subject: [PATCH 1/2] fix: some concurrency issues with the installer --- .../Internal/Windows/PluginInstaller/PluginInstallerWindow.cs | 2 +- Dalamud/Plugin/Internal/PluginManager.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dalamud/Interface/Internal/Windows/PluginInstaller/PluginInstallerWindow.cs b/Dalamud/Interface/Internal/Windows/PluginInstaller/PluginInstallerWindow.cs index 4948ecbff..85b8431da 100644 --- a/Dalamud/Interface/Internal/Windows/PluginInstaller/PluginInstallerWindow.cs +++ b/Dalamud/Interface/Internal/Windows/PluginInstaller/PluginInstallerWindow.cs @@ -1035,7 +1035,7 @@ namespace Dalamud.Interface.Internal.Windows.PluginInstaller private void DrawPluginCategoryContent() { - var ready = this.DrawPluginListLoading(); + var ready = this.DrawPluginListLoading() && !this.AnyOperationInProgress; if (!this.categoryManager.IsSelectionValid || !ready) { return; diff --git a/Dalamud/Plugin/Internal/PluginManager.cs b/Dalamud/Plugin/Internal/PluginManager.cs index 05ab3a85a..e243c1b05 100644 --- a/Dalamud/Plugin/Internal/PluginManager.cs +++ b/Dalamud/Plugin/Internal/PluginManager.cs @@ -151,7 +151,7 @@ internal partial class PluginManager : IDisposable, IServiceType /// /// Gets a value indicating whether all added repos are not in progress. /// - public bool ReposReady => this.Repos.All(repo => repo.State != PluginRepositoryState.InProgress || repo.State != PluginRepositoryState.Fail); + public bool ReposReady => this.Repos.All(repo => repo.State != PluginRepositoryState.InProgress); /// /// Gets a value indicating whether the plugin manager started in safe mode. From 453c4174229cf75006b54593d2a0bb6fcb31a9a2 Mon Sep 17 00:00:00 2001 From: Aireil <33433913+Aireil@users.noreply.github.com> Date: Tue, 13 Sep 2022 17:56:55 +0200 Subject: [PATCH 2/2] fix: only display embarassing message if being held by plugins --- .../Internal/Windows/PluginInstaller/PluginInstallerWindow.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dalamud/Interface/Internal/Windows/PluginInstaller/PluginInstallerWindow.cs b/Dalamud/Interface/Internal/Windows/PluginInstaller/PluginInstallerWindow.cs index 85b8431da..0eedd8c18 100644 --- a/Dalamud/Interface/Internal/Windows/PluginInstaller/PluginInstallerWindow.cs +++ b/Dalamud/Interface/Internal/Windows/PluginInstaller/PluginInstallerWindow.cs @@ -338,7 +338,7 @@ namespace Dalamud.Interface.Internal.Windows.PluginInstaller throw new ArgumentOutOfRangeException(); } - if (DateTime.Now - this.timeLoaded > TimeSpan.FromSeconds(90) && isWaitingManager) + if (DateTime.Now - this.timeLoaded > TimeSpan.FromSeconds(90) && !pluginManager.PluginsReady) { ImGui.PushStyleColor(ImGuiCol.Text, ImGuiColors.DalamudRed); ImGuiHelpers.CenteredText("This is embarrassing, but...");