mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
light edit: fix EA-220180 - assert: ActionManagerImpl.<init>
GitOrigin-RevId: c914550c3fa4fa61b7c642f9acd397f4b4408e2e
This commit is contained in:
committed by
intellij-monorepo-bot
parent
8983e75f81
commit
ca1ed314c6
@@ -2,6 +2,7 @@
|
||||
package com.intellij.ide.lightEdit;
|
||||
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.actionSystem.ActionManager;
|
||||
import com.intellij.openapi.application.ApplicationBundle;
|
||||
import com.intellij.openapi.application.ApplicationInfo;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
@@ -17,6 +18,7 @@ import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.openapi.wm.impl.welcomeScreen.WelcomeFrame;
|
||||
import com.intellij.util.ObjectUtils;
|
||||
import com.intellij.util.concurrency.NonUrgentExecutor;
|
||||
import com.intellij.util.ui.update.UiNotifyConnector;
|
||||
import com.intellij.util.xmlb.XmlSerializerUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -76,6 +78,25 @@ public class LightEditService implements Disposable, LightEditorListener, Persis
|
||||
}
|
||||
|
||||
public void openFile(@NotNull VirtualFile file) {
|
||||
doWhenActionManagerInitialized(() -> {
|
||||
doOpenFile(file);
|
||||
});
|
||||
}
|
||||
|
||||
private static void doWhenActionManagerInitialized(@NotNull Runnable callback) {
|
||||
ActionManager created = ApplicationManager.getApplication().getServiceIfCreated(ActionManager.class);
|
||||
if (created == null) {
|
||||
NonUrgentExecutor.getInstance().execute(() -> {
|
||||
ActionManager.getInstance();
|
||||
ApplicationManager.getApplication().invokeLater(callback);
|
||||
});
|
||||
}
|
||||
else {
|
||||
callback.run();
|
||||
}
|
||||
}
|
||||
|
||||
private void doOpenFile(@NotNull VirtualFile file) {
|
||||
showEditorWindow();
|
||||
LightEditorInfo openEditorInfo = myEditorManager.findOpen(file);
|
||||
if (openEditorInfo == null) {
|
||||
|
||||
Reference in New Issue
Block a user