vcs: do not compute 'Change.getOriginText' on EDT

GitOrigin-RevId: da3967571ba877a929a4a349cdc702ef82b6cad3
This commit is contained in:
Aleksey Pivovarov
2023-03-13 19:42:19 +00:00
committed by intellij-monorepo-bot
parent a06ba79aee
commit 9a7b7ae388
3 changed files with 13 additions and 1 deletions
@@ -41,6 +41,12 @@ public class ChangesBrowserChangeNode extends ChangesBrowserNode<Change> impleme
return ChangesUtil.getFilePath(getUserObject()).isDirectory();
}
@Override
protected void preparePresentationDataCaches(@NotNull Project project) {
getUserObject().getOriginText(project);
super.preparePresentationDataCaches(project);
}
@Override
public void render(@NotNull ChangesBrowserNodeRenderer renderer, boolean selected, boolean expanded, boolean hasFocus) {
ReadAction.run(() -> {
@@ -18,6 +18,7 @@ import com.intellij.ui.DirtyUI;
import com.intellij.ui.JBColor;
import com.intellij.ui.SimpleTextAttributes;
import com.intellij.util.ObjectUtils;
import com.intellij.util.concurrency.annotations.RequiresBackgroundThread;
import com.intellij.util.containers.Convertor;
import com.intellij.util.containers.JBIterable;
import com.intellij.util.ui.tree.TreeUtil;
@@ -73,6 +74,11 @@ public abstract class ChangesBrowserNode<T> extends DefaultMutableTreeNode imple
super(userObject);
}
@RequiresBackgroundThread
protected void preparePresentationDataCaches(@NotNull Project project) {
getBackgroundColorCached(project);
}
/**
* see {@link TreeModelBuilder#precalculateFileColors(Project, ChangesBrowserNode)}
*/
@@ -464,7 +464,7 @@ public class TreeModelBuilder implements ChangesViewModelBuilder {
@RequiresReadLock
private static void precalculateFileColors(@NotNull Project project, @NotNull ChangesBrowserNode<?> root) {
root.traverse().forEach(node -> {
node.getBackgroundColorCached(project);
node.preparePresentationDataCaches(project);
// Allow to interrupt read lock
ProgressManager.checkCanceled();
});