From 3763f18fe6f17407bc2de7d097824c73033f86b5 Mon Sep 17 00:00:00 2001 From: crschnick Date: Sat, 20 Jun 2026 01:47:58 +0000 Subject: [PATCH] Fixes --- .../java/io/xpipe/app/process/ShellControl.java | 15 +++++++++------ .../app/terminal/TerminalDockHubManager.java | 5 +++-- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/io/xpipe/app/process/ShellControl.java b/app/src/main/java/io/xpipe/app/process/ShellControl.java index d880bf892..cc7edd142 100644 --- a/app/src/main/java/io/xpipe/app/process/ShellControl.java +++ b/app/src/main/java/io/xpipe/app/process/ShellControl.java @@ -106,14 +106,17 @@ public interface ShellControl extends ProcessControl { return onInit(shellControl -> { var or = shellControl.getOriginalShellDialect(); var oldState = store.getState(); - var s = oldState.toBuilder() - .osType(shellControl.getOsType()) + var newState = oldState.toBuilder() .shellDialect(or.isMarkerDialect() ? oldState.getShellDialect() : or) .ttyState(shellControl.getTtyState()) - .running(true) - .osName(shellControl.getOsName()) - .build(); - store.setState(s.asNeeded()); + .running(true); + if (shellControl.getOsType() != null) { + newState.osType(shellControl.getOsType()); + } + if (shellControl.getOsName() != null) { + newState.osName(shellControl.getOsName()); + } + store.setState(newState.build().asNeeded()); }); } 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 cc7c373f0..143f535be 100644 --- a/app/src/main/java/io/xpipe/app/terminal/TerminalDockHubManager.java +++ b/app/src/main/java/io/xpipe/app/terminal/TerminalDockHubManager.java @@ -228,11 +228,12 @@ public class TerminalDockHubManager { var listener = new TerminalView.Listener() { @Override public void onSessionOpened(TerminalView.ShellSession session) { - if (!hubRequests.contains(session.getRequest())) { + if (!(session.getTerminal() instanceof TerminalView.ControllableTerminalSession t)) { return; } - if (!(session.getTerminal() instanceof TerminalView.ControllableTerminalSession t)) { + if (!hubRequests.contains(session.getRequest())) { + t.getControllable().own(NativeWinWindowControl.MAIN_WINDOW); return; }