diff --git a/app/src/main/java/io/xpipe/app/browser/BrowserFileListComp.java b/app/src/main/java/io/xpipe/app/browser/BrowserFileListComp.java index 827f0c13..c8aaf792 100644 --- a/app/src/main/java/io/xpipe/app/browser/BrowserFileListComp.java +++ b/app/src/main/java/io/xpipe/app/browser/BrowserFileListComp.java @@ -409,12 +409,14 @@ final class BrowserFileListComp extends SimpleComp { double dragY = event.getSceneY(); double topYProximity = tableBounds.getMinY() + proximity; double bottomYProximity = tableBounds.getMaxY() - proximity; + + // clamp new values between 0 and 1 to prevent scrollbar flicking around at the edges if (dragY < topYProximity) { var scrollValue = Math.min(topYProximity - dragY, 100) / 10000.0; - vbar.setValue(vbar.getValue() - scrollValue); + vbar.setValue(Math.max(vbar.getValue() - scrollValue, 0)); } else if (dragY > bottomYProximity) { var scrollValue = Math.min(dragY - bottomYProximity, 100) / 10000.0; - vbar.setValue(vbar.getValue() + scrollValue); + vbar.setValue(Math.min(vbar.getValue() + scrollValue, 1.0)); } } diff --git a/app/src/main/java/io/xpipe/app/browser/BrowserTransferComp.java b/app/src/main/java/io/xpipe/app/browser/BrowserTransferComp.java index 3c5f6161..1f424031 100644 --- a/app/src/main/java/io/xpipe/app/browser/BrowserTransferComp.java +++ b/app/src/main/java/io/xpipe/app/browser/BrowserTransferComp.java @@ -34,7 +34,7 @@ public class BrowserTransferComp extends SimpleComp { @Override protected Region createSimple() { - var background = new LabelComp(AppI18n.observable("download")) + var background = new LabelComp(AppI18n.observable("transferDescription")) .apply(struc -> struc.get().setGraphic(new FontIcon("mdi2d-download-outline"))) .visible(BindingsHelper.persist(Bindings.isEmpty(stage.getItems()))); var backgroundStack = diff --git a/app/src/main/java/io/xpipe/app/browser/BrowserTransferModel.java b/app/src/main/java/io/xpipe/app/browser/BrowserTransferModel.java index 7e5541d7..be8a71c9 100644 --- a/app/src/main/java/io/xpipe/app/browser/BrowserTransferModel.java +++ b/app/src/main/java/io/xpipe/app/browser/BrowserTransferModel.java @@ -77,6 +77,10 @@ public class BrowserTransferModel { } for (Item item : new ArrayList<>(items)) { + if (item.getFinishedDownload().get()) { + continue; + } + try { try (var b = new BusyProperty(downloading)) { FileSystemHelper.dropFilesInto( diff --git a/app/src/main/resources/io/xpipe/app/resources/lang/translations_en.properties b/app/src/main/resources/io/xpipe/app/resources/lang/translations_en.properties index 0e10dc70..aadd8439 100644 --- a/app/src/main/resources/io/xpipe/app/resources/lang/translations_en.properties +++ b/app/src/main/resources/io/xpipe/app/resources/lang/translations_en.properties @@ -30,7 +30,7 @@ deleteAlertTitle=Confirm deletion deleteAlertHeader=Do you want to delete the ($COUNT$) selected elements? selectedElements=Selected elements: mustNotBeEmpty=$NAME$ must not be empty -download=Drop to download +transferDescription=Drop to transfer dragFiles=Drag files within browser dragLocalFiles=Drag local files from here null=$VALUE$ must be not null diff --git a/dist/changelogs/1.4.0.md b/dist/changelogs/1.4.0.md new file mode 100644 index 00000000..7ce3fd6a --- /dev/null +++ b/dist/changelogs/1.4.0.md @@ -0,0 +1,18 @@ +## Changes in 1.4.0 + +- Implement support for SSH tunnels / port forwarding. + This includes local, remote, and dynamic tunneling. +- Rework file browser transfer pane. Files dropped there will no longer be downloaded automatically. + Instead, you can also use it just to quickly transfer a set of files across file system tabs. + Only when you now click the new download button, the set of files is downloaded + to your local machine and can be dragged into your native desktop environment as regular files. +- Add support for podman containers +- Add support for BBEdit as an editor +- Add support for Alacritty on Windows and macOS as well +- Add support for Kitty on macOS +- Restyle sidebar to take up less space +- Improve scaling of connection list display information +- Improve askpass script retention +- Fix some features not working on busybox systems due to unknown base64 --decode option +- Fix local elevation not working on macOS with Fig installed +- Many other small miscellaneous fixes and improvements