diff --git a/app/src/main/java/io/xpipe/app/browser/BrowserComp.java b/app/src/main/java/io/xpipe/app/browser/BrowserComp.java index 3deaf04eb..becb0b820 100644 --- a/app/src/main/java/io/xpipe/app/browser/BrowserComp.java +++ b/app/src/main/java/io/xpipe/app/browser/BrowserComp.java @@ -166,7 +166,12 @@ public class BrowserComp extends SimpleComp { model.getSelected().addListener((observable, oldValue, newValue) -> { PlatformThread.runLaterIfNeeded(() -> { var index = model.getOpenFileSystems().indexOf(newValue); - var tab = index != -1 ? tabs.getTabs().get(index) : null; + if (index == -1 || index >= tabs.getTabs().size()) { + tabs.getSelectionModel().select(null); + return; + } + + var tab = tabs.getTabs().get(index); tabs.getSelectionModel().select(tab); }); }); diff --git a/core/src/main/java/io/xpipe/core/util/XPipeTempDirectory.java b/core/src/main/java/io/xpipe/core/util/XPipeExecTempDirectory.java similarity index 80% rename from core/src/main/java/io/xpipe/core/util/XPipeTempDirectory.java rename to core/src/main/java/io/xpipe/core/util/XPipeExecTempDirectory.java index 76eaf39fe..ad2880316 100644 --- a/core/src/main/java/io/xpipe/core/util/XPipeTempDirectory.java +++ b/core/src/main/java/io/xpipe/core/util/XPipeExecTempDirectory.java @@ -6,7 +6,7 @@ import io.xpipe.core.process.ShellControl; import java.util.Arrays; import java.util.stream.Stream; -public class XPipeTempDirectory { +public class XPipeExecTempDirectory { public static String getSystemTempDirectory(ShellControl proc) throws Exception { return proc.getOsType().getTempDirectory(proc); @@ -14,7 +14,7 @@ public class XPipeTempDirectory { public static String initXPipeTempDirectory(ShellControl proc) throws Exception { var base = proc.getOsType().getTempDirectory(proc); - var arr = Stream.of(base, "xpipe").toArray(String[]::new); + var arr = Stream.of(base, "xpipe", "exec").toArray(String[]::new); var dir = FileNames.join(arr); var existsCommand = proc.getShellDialect().createFileExistsCommand(proc, dir); @@ -22,14 +22,14 @@ public class XPipeTempDirectory { proc.executeSimpleCommand(proc.getShellDialect().getFileDeleteCommand(dir)); } - proc.getShellDialect().prepareTempDirectory(proc, dir); + proc.getShellDialect().prepareTempDirectory(proc, dir).execute(); return dir; } public static String getSubDirectory(ShellControl proc, String... sub) throws Exception { var base = proc.getOsType().getTempDirectory(proc); - var arr = Stream.concat(Stream.of(base, "xpipe"), Arrays.stream(sub)).toArray(String[]::new); + var arr = Stream.concat(Stream.of(base, "xpipe", "exec"), Arrays.stream(sub)).toArray(String[]::new); var dir = FileNames.join(arr); var existsCommand = proc.getShellDialect().createFileExistsCommand(proc, dir);