From 00169503c831bd975769e912452ec093f6c4d03d Mon Sep 17 00:00:00 2001 From: Christoph Caks Date: Tue, 25 Feb 2020 19:03:39 +0100 Subject: [PATCH] fixed issue where -ea caused a lot of PG access errors --- .../java/org/eclipse/fx/drift/DriftFXSurface.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/org.eclipse.fx.drift/src/main/java/org/eclipse/fx/drift/DriftFXSurface.java b/org.eclipse.fx.drift/src/main/java/org/eclipse/fx/drift/DriftFXSurface.java index 55a89fc..d268e8b 100644 --- a/org.eclipse.fx.drift/src/main/java/org/eclipse/fx/drift/DriftFXSurface.java +++ b/org.eclipse.fx.drift/src/main/java/org/eclipse/fx/drift/DriftFXSurface.java @@ -39,6 +39,7 @@ import javafx.beans.property.SimpleDoubleProperty; import javafx.beans.property.SimpleObjectProperty; import javafx.scene.Node; +import javafx.scene.Scene; //Note: this implementation is against internal JavafX API @SuppressWarnings({"restriction", "deprecation"}) @@ -147,10 +148,15 @@ public long getNativeSurfaceHandle() { public DriftFXSurface() { JNINativeSurface jni = new JNINativeSurface( (frame) -> { - NGDriftFXSurface ngSurface = impl_getPeer(); - ngSurface.present(frame); Platform.runLater(() -> { - impl_markDirty(DirtyBits.NODE_CONTENTS); + Scene.impl_setAllowPGAccess(true); + try { + NGDriftFXSurface ngSurface = impl_getPeer(); + ngSurface.present(frame); + impl_markDirty(DirtyBits.NODE_CONTENTS); + } finally { + Scene.impl_setAllowPGAccess(false); + } }); }); nativeSurfaceId = NativeAPI.createNativeSurface(jni); @@ -166,6 +172,8 @@ public DriftFXSurface() { }); }); } + + @Override protected NGNode impl_createPeer() {