mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Git: fix process canceled exception on project reopening
This commit is contained in:
@@ -15,9 +15,14 @@
|
||||
*/
|
||||
package com.intellij.ui;
|
||||
|
||||
import com.intellij.openapi.application.Application;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.impl.ApplicationInfoImpl;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import com.intellij.util.ImageLoader;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
@@ -45,4 +50,18 @@ public class AppUIUtil {
|
||||
public static void updateDialogIcon(final JDialog dialog) {
|
||||
UIUtil.updateDialogIcon(dialog, getAppIconImages());
|
||||
}
|
||||
|
||||
public static void invokeLaterIfProjectAlive(@NotNull final Project project, @NotNull final Runnable runnable) {
|
||||
final Application application = ApplicationManager.getApplication();
|
||||
if (application.isDispatchThread()) {
|
||||
runnable.run();
|
||||
} else {
|
||||
application.invokeLater(runnable, new Condition() {
|
||||
@Override
|
||||
public boolean value(Object o) {
|
||||
return (! project.isOpen()) || project.isDisposed();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ import com.intellij.openapi.vcs.VcsVFSListener;
|
||||
import com.intellij.openapi.vfs.LocalFileSystem;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.openapi.vfs.VirtualFileEvent;
|
||||
import com.intellij.ui.AppUIUtil;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import com.intellij.vcsUtil.VcsUtil;
|
||||
import git4idea.GitUtil;
|
||||
@@ -150,7 +151,7 @@ public class GitVFSListener extends VcsVFSListener {
|
||||
}
|
||||
}
|
||||
addedFiles.retainAll(retainedFiles);
|
||||
UIUtil.invokeLaterIfNeeded(new Runnable() {
|
||||
AppUIUtil.invokeLaterIfProjectAlive(myProject, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
originalExecuteAdd(addedFiles, copiedFiles);
|
||||
|
||||
Reference in New Issue
Block a user