From 31a8f0c104651a09b5b017cbcbc6a53cbf3cfda5 Mon Sep 17 00:00:00 2001 From: crschnick Date: Sun, 22 Mar 2026 11:50:50 +0000 Subject: [PATCH] Rework [stage] --- .../java/io/xpipe/app/platform/PlatformState.java | 15 +++++++++------ .../xpipe/app/process/ProcessOutputException.java | 4 ++++ .../app/terminal/TerminalDockHubManager.java | 6 ++++-- .../io/xpipe/app/terminal/TerminalDockView.java | 2 +- .../java/io/xpipe/app/update/AppDownloads.java | 6 ++---- dist/changelog/22.0.md | 1 + version | 2 +- 7 files changed, 22 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/io/xpipe/app/platform/PlatformState.java b/app/src/main/java/io/xpipe/app/platform/PlatformState.java index d20dc874c..88c4c586e 100644 --- a/app/src/main/java/io/xpipe/app/platform/PlatformState.java +++ b/app/src/main/java/io/xpipe/app/platform/PlatformState.java @@ -1,5 +1,6 @@ package io.xpipe.app.platform; +import io.xpipe.app.core.AppProperties; import io.xpipe.app.core.check.AppSystemFontCheck; import io.xpipe.app.issue.ErrorEventFactory; import io.xpipe.app.prefs.AppPrefs; @@ -12,6 +13,7 @@ import javafx.scene.text.Font; import lombok.Getter; import lombok.Setter; import lombok.SneakyThrows; +import org.apache.commons.lang3.SystemUtils; import java.awt.*; import java.util.concurrent.CountDownLatch; @@ -113,12 +115,13 @@ public enum PlatformState { } // This issue is now fixed in 27-ea+4 - // if (SystemUtils.IS_OS_WINDOWS) { - // This is primarily intended to fix Windows unified stage transparency issues - // (https://bugs.openjdk.org/browse/JDK-8329382) - // But apparently it can also occur without a custom stage on Windows - // System.setProperty("prism.forceUploadingPainter", "true"); - // } + // The bellsoft JavaFX build for ARM does not contain the fix yet + if (OsType.ofLocal() == OsType.WINDOWS && AppProperties.get().getArch().equals("x86_64")) { + // This is primarily intended to fix Windows unified stage transparency issues + // (https://bugs.openjdk.org/browse/JDK-8329382) + // But apparently it can also occur without a custom stage on Windows + System.setProperty("prism.forceUploadingPainter", "true"); + } if (AppPrefs.get() != null && AppPrefs.get().disableHardwareAcceleration().get()) { diff --git a/app/src/main/java/io/xpipe/app/process/ProcessOutputException.java b/app/src/main/java/io/xpipe/app/process/ProcessOutputException.java index b136e8273..e749730af 100644 --- a/app/src/main/java/io/xpipe/app/process/ProcessOutputException.java +++ b/app/src/main/java/io/xpipe/app/process/ProcessOutputException.java @@ -31,6 +31,10 @@ public class ProcessOutputException extends Exception { } } + public void replaceOutput(String s, String replacement) { + replaceOutput(output.replace(s, replacement)); + } + @Override public String getMessage() { if (prefix == null && suffix == null && "".equals(output)) { diff --git a/app/src/main/java/io/xpipe/app/terminal/TerminalDockHubManager.java b/app/src/main/java/io/xpipe/app/terminal/TerminalDockHubManager.java index 9426d5e23..a989283fc 100644 --- a/app/src/main/java/io/xpipe/app/terminal/TerminalDockHubManager.java +++ b/app/src/main/java/io/xpipe/app/terminal/TerminalDockHubManager.java @@ -215,10 +215,12 @@ public class TerminalDockHubManager { } var dock = !detached.get(); - dockModel.trackTerminal(controllable.get(), dock); - dockModel.closeOtherTerminals(session.getRequest()); enableDock(); showDock(); + Platform.runLater(() -> { + dockModel.trackTerminal(controllable.get(), dock); + dockModel.closeOtherTerminals(session.getRequest()); + }); } @Override diff --git a/app/src/main/java/io/xpipe/app/terminal/TerminalDockView.java b/app/src/main/java/io/xpipe/app/terminal/TerminalDockView.java index 18bd975b3..574a164bd 100644 --- a/app/src/main/java/io/xpipe/app/terminal/TerminalDockView.java +++ b/app/src/main/java/io/xpipe/app/terminal/TerminalDockView.java @@ -266,10 +266,10 @@ public class TerminalDockView { terminalInstances.forEach(terminalInstance -> { terminalInstance.show(); - terminalInstance.updatePosition(windowBoundsFunction.apply(viewBounds)); terminalInstance.removeIcon(); terminalInstance.own(); terminalInstance.removeStyle(); + terminalInstance.updatePosition(windowBoundsFunction.apply(viewBounds)); terminalInstance.focus(); }); } diff --git a/app/src/main/java/io/xpipe/app/update/AppDownloads.java b/app/src/main/java/io/xpipe/app/update/AppDownloads.java index dd4e2339f..b0d694fae 100644 --- a/app/src/main/java/io/xpipe/app/update/AppDownloads.java +++ b/app/src/main/java/io/xpipe/app/update/AppDownloads.java @@ -1,5 +1,6 @@ package io.xpipe.app.update; +import io.xpipe.app.core.AppCache; import io.xpipe.app.core.AppLayoutModel; import io.xpipe.app.core.AppProperties; import io.xpipe.app.core.AppSystemInfo; @@ -35,10 +36,7 @@ public class AppDownloads { throw new IOException(new String(response.body(), StandardCharsets.UTF_8)); } - // Fix file name to not have dashes to not be included in temp dir clean - var downloadFile = AppSystemInfo.ofCurrent() - .getTemp() - .resolve(release.getFile().replaceAll("-", "_")); + var downloadFile = AppCache.getBasePath().resolve(release.getFile()); Files.write(downloadFile, response.body()); TrackEvent.withInfo("Downloaded asset") .tag("version", version) diff --git a/dist/changelog/22.0.md b/dist/changelog/22.0.md index 8738bad90..85b8b6be8 100644 --- a/dist/changelog/22.0.md +++ b/dist/changelog/22.0.md @@ -81,3 +81,4 @@ The filtering performance also has been improved, so any filter changes now upda - Add ctrl+t shortcut for terminal dock - Fix VMware VM connection freezing if no encryption password was specified when it was required - Fix VMware VMs being removed when not running and moved to another directory +- Fix application window background fill being wrong on Windows ARM diff --git a/version b/version index c70582040..7621901a7 100644 --- a/version +++ b/version @@ -1 +1 @@ -22.0-12 +22.0-13