From 55807652ca32e16ef6d0c609c591d9ccb60e1cf7 Mon Sep 17 00:00:00 2001 From: Eugene Zhuravlev Date: Wed, 22 Jun 2016 12:25:56 +0200 Subject: [PATCH] fix ant completion tests --- platform/platform-api/src/com/intellij/ui/GuiUtils.java | 9 +++++++++ plugins/ant/src/com/intellij/lang/ant/AntSupport.java | 6 ++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/platform/platform-api/src/com/intellij/ui/GuiUtils.java b/platform/platform-api/src/com/intellij/ui/GuiUtils.java index 792556e50111..cbb58679e63d 100644 --- a/platform/platform-api/src/com/intellij/ui/GuiUtils.java +++ b/platform/platform-api/src/com/intellij/ui/GuiUtils.java @@ -23,6 +23,7 @@ import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory; import com.intellij.openapi.ui.FixedSizeButton; import com.intellij.openapi.ui.Splitter; import com.intellij.openapi.ui.TextFieldWithBrowseButton; +import com.intellij.openapi.util.Condition; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.CharFilter; import com.intellij.openapi.util.text.StringUtil; @@ -370,6 +371,14 @@ public class GuiUtils { } } + public static void invokeLaterIfNeeded(@NotNull Runnable runnable, @NotNull ModalityState modalityState, @NotNull Condition expired) { + if (ApplicationManager.getApplication().isDispatchThread()) { + runnable.run(); + } else { + ApplicationManager.getApplication().invokeLater(runnable, modalityState, expired); + } + } + public static JTextField createUndoableTextField() { return new JBTextField(); } diff --git a/plugins/ant/src/com/intellij/lang/ant/AntSupport.java b/plugins/ant/src/com/intellij/lang/ant/AntSupport.java index 51db2c0311c9..6b68f4c090b6 100644 --- a/plugins/ant/src/com/intellij/lang/ant/AntSupport.java +++ b/plugins/ant/src/com/intellij/lang/ant/AntSupport.java @@ -20,6 +20,7 @@ import com.intellij.lang.ant.dom.AntDomAntlib; import com.intellij.lang.ant.dom.AntDomElement; import com.intellij.lang.ant.dom.AntDomProject; import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.application.ModalityState; import com.intellij.openapi.project.Project; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiFile; @@ -27,6 +28,7 @@ import com.intellij.psi.PsiManager; import com.intellij.psi.impl.PsiModificationTrackerImpl; import com.intellij.psi.xml.XmlFile; import com.intellij.psi.xml.XmlTag; +import com.intellij.ui.GuiUtils; import com.intellij.util.xml.ConvertContext; import com.intellij.util.xml.DomElement; import com.intellij.util.xml.DomFileElement; @@ -40,10 +42,10 @@ public class AntSupport { public static void markFileAsAntFile(final VirtualFile file, final Project project, final boolean value) { if (file.isValid() && ForcedAntFileAttribute.isAntFile(file) != value) { ForcedAntFileAttribute.forceAntFile(file, value); - ApplicationManager.getApplication().invokeLater(() -> { + GuiUtils.invokeLaterIfNeeded(() -> { ((PsiModificationTrackerImpl)PsiManager.getInstance(project).getModificationTracker()).incCounter(); restartDaemon(project); - }, project.getDisposed()); + }, ModalityState.defaultModalityState(), project.getDisposed()); } }