mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
vcs: do not compute 'Change.getOriginText' on EDT
GitOrigin-RevId: da3967571ba877a929a4a349cdc702ef82b6cad3
This commit is contained in:
committed by
intellij-monorepo-bot
parent
a06ba79aee
commit
9a7b7ae388
+6
@@ -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();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user