From bc84dbaa749ef58ef3691f21331d5d5bc0903d03 Mon Sep 17 00:00:00 2001 From: peter Date: Sat, 29 Oct 2016 13:03:46 +0200 Subject: [PATCH] show git merge dialog in a write-safe context (EA-90653 - assert: FileDocumentManagerImpl.saveAllDocuments) --- plugins/git4idea/src/git4idea/merge/GitMergeUtil.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/git4idea/src/git4idea/merge/GitMergeUtil.java b/plugins/git4idea/src/git4idea/merge/GitMergeUtil.java index ac9c6d32da34..ddc285718ce2 100644 --- a/plugins/git4idea/src/git4idea/merge/GitMergeUtil.java +++ b/plugins/git4idea/src/git4idea/merge/GitMergeUtil.java @@ -18,6 +18,7 @@ package git4idea.merge; import com.intellij.history.Label; import com.intellij.history.LocalHistory; import com.intellij.ide.util.ElementsChooser; +import com.intellij.openapi.application.ModalityState; import com.intellij.openapi.project.Project; import com.intellij.openapi.vcs.AbstractVcsHelper; import com.intellij.openapi.vcs.ProjectLevelVcsManager; @@ -29,6 +30,7 @@ import com.intellij.openapi.vcs.update.UpdateInfoTree; import com.intellij.openapi.vcs.update.UpdatedFiles; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.ui.GuiUtils; import com.intellij.util.ui.UIUtil; import git4idea.GitRevisionNumber; import git4idea.GitVcs; @@ -143,12 +145,12 @@ public class GitMergeUtil { Collection unmergedNames = files.getGroupById(FileGroup.MERGED_WITH_CONFLICT_ID).getFiles(); if (!unmergedNames.isEmpty()) { List unmerged = mapNotNull(unmergedNames, name -> LocalFileSystem.getInstance().findFileByPath(name)); - UIUtil.invokeLaterIfNeeded(() -> { + GuiUtils.invokeLaterIfNeeded(() -> { GitVcs vcs = GitVcs.getInstance(project); if (vcs != null) { AbstractVcsHelper.getInstance(project).showMergeDialog(unmerged, vcs.getMergeProvider()); } - }); + }, ModalityState.defaultModalityState()); } } }