From bff0015f02e527ee4b7cb2d138a7f13a17d7860e Mon Sep 17 00:00:00 2001 From: bQUARKz Date: Tue, 7 Apr 2026 07:48:32 +0100 Subject: [PATCH] general fixes --- .../controls/shell/StudioRunSurfaceControl.java | 12 +++++++++++- test-projects/fragments/src/main.pbs | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/prometeu-studio/src/main/java/p/studio/controls/shell/StudioRunSurfaceControl.java b/prometeu-studio/src/main/java/p/studio/controls/shell/StudioRunSurfaceControl.java index 7d70ed84..826a644d 100644 --- a/prometeu-studio/src/main/java/p/studio/controls/shell/StudioRunSurfaceControl.java +++ b/prometeu-studio/src/main/java/p/studio/controls/shell/StudioRunSurfaceControl.java @@ -1,5 +1,6 @@ package p.studio.controls.shell; +import javafx.application.Platform; import javafx.beans.binding.Bindings; import javafx.beans.property.BooleanProperty; import javafx.beans.property.SimpleBooleanProperty; @@ -12,6 +13,7 @@ import p.studio.Container; import p.studio.controls.lifecycle.StudioControlLifecycle; import p.studio.controls.lifecycle.StudioControlLifecycleSupport; import p.studio.execution.StudioExecutionSessionService; +import p.studio.execution.StudioExecutionSnapshot; import p.studio.execution.StudioExecutionState; import p.studio.utilities.events.EventSubscription; import p.studio.utilities.i18n.I18n; @@ -78,7 +80,15 @@ public final class StudioRunSurfaceControl extends HBox implements StudioControl if (sessionSubscription != null) { return; } - sessionSubscription = executionSessionService.subscribe(snapshot -> running.set(isRunningState(snapshot.state()))); + sessionSubscription = executionSessionService.subscribe(this::handleSessionUpdate); + } + + private void handleSessionUpdate(final StudioExecutionSnapshot snapshot) { + if (Platform.isFxApplicationThread()) { + running.set(isRunningState(snapshot.state())); + return; + } + Platform.runLater(() -> running.set(isRunningState(snapshot.state()))); } @Override diff --git a/test-projects/fragments/src/main.pbs b/test-projects/fragments/src/main.pbs index be1d364e..ea29bd7c 100644 --- a/test-projects/fragments/src/main.pbs +++ b/test-projects/fragments/src/main.pbs @@ -15,7 +15,7 @@ fn init() -> void fn abs_i(v: int) -> int { if (v < 0) { - return 0 - v; + return -v; } return v; } -- 2.47.2