From 9d92d609d74edc63c061bc601692facfda8d8912 Mon Sep 17 00:00:00 2001 From: Aleksandr Rasnyuk Date: Tue, 2 Nov 2021 17:19:58 +0300 Subject: [PATCH] [CWM-3862] Preserve action registration order during replacement GitOrigin-RevId: d331ada7563425bbe79349133a3357d7418a5cc4 --- .../intellij/openapi/actionSystem/impl/ActionManagerImpl.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionManagerImpl.java index 6ae80f2e956e..408c1f962427 100644 --- a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionManagerImpl.java @@ -1455,6 +1455,7 @@ public class ActionManagerImpl extends ActionManagerEx implements Disposable { } AnAction oldAction = newAction instanceof OverridingAction ? getAction(actionId) : getActionOrStub(actionId); + int oldIndex = idToIndex.getOrDefault(actionId, -1); // Valid indices >= 0 if (oldAction != null) { if (newAction instanceof OverridingAction) { myBaseActions.put((OverridingAction)newAction, oldAction); @@ -1473,6 +1474,9 @@ public class ActionManagerImpl extends ActionManagerEx implements Disposable { unregisterAction(actionId, false); } registerAction(actionId, newAction, pluginId); + if (oldIndex >= 0) { + idToIndex.put(actionId, oldIndex); + } return oldAction; }