diff --git a/plugins/javaFX/FxBuilderEmbedder/lib/embedder.jar b/plugins/javaFX/FxBuilderEmbedder/lib/embedder.jar index 1ddf9204cf68..9400a2955c5b 100644 Binary files a/plugins/javaFX/FxBuilderEmbedder/lib/embedder.jar and b/plugins/javaFX/FxBuilderEmbedder/lib/embedder.jar differ diff --git a/plugins/javaFX/FxBuilderEmbedder/src/org/jetbrains/plugins/javaFX/sceneBuilder/SceneBuilderImpl.java b/plugins/javaFX/FxBuilderEmbedder/src/org/jetbrains/plugins/javaFX/sceneBuilder/SceneBuilderImpl.java index 025da2f708f0..fba7e4de778a 100644 --- a/plugins/javaFX/FxBuilderEmbedder/src/org/jetbrains/plugins/javaFX/sceneBuilder/SceneBuilderImpl.java +++ b/plugins/javaFX/FxBuilderEmbedder/src/org/jetbrains/plugins/javaFX/sceneBuilder/SceneBuilderImpl.java @@ -27,6 +27,7 @@ public class SceneBuilderImpl implements SceneBuilder { private final JFXPanel myPanel = new JFXPanel(); private EditorController myEditorController; private ChangeListener myListener; + private volatile boolean mySkipChanges; public SceneBuilderImpl(URL url, EditorCallback editorCallback) { myFileURL = url; @@ -88,7 +89,9 @@ public class SceneBuilderImpl implements SceneBuilder { myListener = new ChangeListener() { @Override public void changed(ObservableValue observable, Number oldValue, Number newValue) { - myEditorCallback.saveChanges(myEditorController.getFxmlText()); + if (!mySkipChanges) { + myEditorCallback.saveChanges(myEditorController.getFxmlText()); + } } }; @@ -103,6 +106,8 @@ public class SceneBuilderImpl implements SceneBuilder { } private void loadFile() { + mySkipChanges = true; + try { String fxmlText = FXOMDocument.readContentFromURL(myFileURL); myEditorController.setFxmlTextAndLocation(fxmlText, myFileURL); @@ -110,5 +115,8 @@ public class SceneBuilderImpl implements SceneBuilder { catch (Throwable e) { myEditorCallback.handleError(e); } + finally { + mySkipChanges = false; + } } } \ No newline at end of file