From c0ff9ae49aab580e83c1e35bc1fcb7e42e804133 Mon Sep 17 00:00:00 2001 From: Pavel Dolgov Date: Thu, 22 Sep 2016 15:41:32 +0300 Subject: [PATCH] Javafx: Save the document in a WriteAction with default modality state before opening the SceneBuilder --- .../plugins/javaFX/sceneBuilder/SceneBuilderEditor.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/sceneBuilder/SceneBuilderEditor.java b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/sceneBuilder/SceneBuilderEditor.java index 3b95be9d1a36..c4989b92a7a5 100644 --- a/plugins/javaFX/src/org/jetbrains/plugins/javaFX/sceneBuilder/SceneBuilderEditor.java +++ b/plugins/javaFX/src/org/jetbrains/plugins/javaFX/sceneBuilder/SceneBuilderEditor.java @@ -2,7 +2,9 @@ package org.jetbrains.plugins.javaFX.sceneBuilder; import com.intellij.codeHighlighting.BackgroundEditorHighlighter; import com.intellij.ide.structureView.StructureViewBuilder; +import com.intellij.openapi.application.Application; import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.application.ModalityState; import com.intellij.openapi.command.CommandProcessor; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.Document; @@ -170,8 +172,12 @@ public class SceneBuilderEditor extends UserDataHolderBase implements FileEditor private void addSceneBuilder() { removeSceneBuilder(); + ApplicationManager.getApplication().invokeLater(this::addSceneBuilderImpl, ModalityState.defaultModalityState()); + } + + private void addSceneBuilderImpl() { try { - FileDocumentManager.getInstance().saveDocument(myDocument); + ApplicationManager.getApplication().runWriteAction(() -> FileDocumentManager.getInstance().saveDocument(myDocument)); mySceneBuilder = SceneBuilder.create(new File(myFile.getPath()).toURI().toURL(), myProject, this);