From 2a6eafd217323dbf2aa033e18d5164f8f0b5083c Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Mon, 29 Sep 2014 15:08:24 +0200 Subject: [PATCH] do not mark Plugins modified if plugin was disabled on startup due to incompatibility changes (IDEA-114768) --- .../ide/plugins/InstalledPluginsManagerMain.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsManagerMain.java b/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsManagerMain.java index cd108befbe1a..0bab1797b8e0 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsManagerMain.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsManagerMain.java @@ -318,9 +318,15 @@ public class InstalledPluginsManagerMain extends PluginManagerMain { public boolean isModified() { final boolean modified = super.isModified(); if (modified) return true; + final List disabledPlugins = PluginManagerCore.getDisabledPlugins(); for (int i = 0; i < pluginsModel.getRowCount(); i++) { final IdeaPluginDescriptor pluginDescriptor = pluginsModel.getObjectAt(i); - if (pluginDescriptor.isEnabled() != ((InstalledPluginsTableModel)pluginsModel).isEnabled(pluginDescriptor.getPluginId())) { + final PluginId pluginId = pluginDescriptor.getPluginId(); + final boolean enabledInTable = ((InstalledPluginsTableModel)pluginsModel).isEnabled(pluginId); + if (pluginDescriptor.isEnabled() != enabledInTable) { + if (enabledInTable && !disabledPlugins.contains(pluginId.getIdString())) { + continue; //was disabled automatically on startup + } return true; } } @@ -330,7 +336,6 @@ public class InstalledPluginsManagerMain extends PluginManagerMain { return true; } } - final List disabledPlugins = PluginManagerCore.getDisabledPlugins(); for (Map.Entry entry : ((InstalledPluginsTableModel)pluginsModel).getEnabledMap().entrySet()) { final Boolean enabled = entry.getValue(); if (enabled != null && !enabled.booleanValue() && !disabledPlugins.contains(entry.getKey().toString())) {