From 0f4c36b3c2f1ba6019d803f8292de385a034b099 Mon Sep 17 00:00:00 2001 From: Craig Raw Date: Mon, 13 Oct 2025 14:26:37 +0200 Subject: [PATCH] add ctrl+shift+left/right keyboard shortcuts for moving tabs left and right --- .../sparrowwallet/sparrow/AppController.java | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/sparrowwallet/sparrow/AppController.java b/src/main/java/com/sparrowwallet/sparrow/AppController.java index be7ae5ab..7cbe4777 100644 --- a/src/main/java/com/sparrowwallet/sparrow/AppController.java +++ b/src/main/java/com/sparrowwallet/sparrow/AppController.java @@ -2096,23 +2096,33 @@ public class AppController implements Initializable { } MenuItem moveRight = new MenuItem("Move Right"); + moveRight.setAccelerator(new KeyCodeCombination(KeyCode.RIGHT, KeyCombination.CONTROL_DOWN, KeyCombination.SHIFT_DOWN)); moveRight.setOnAction(event -> { - int index = tabs.getTabs().indexOf(tab); + int currentIndex = tabs.getSelectionModel().getSelectedIndex(); + if(currentIndex + 1 >= tabs.getTabs().size()) { + return; + } + Tab selectedTab = tabs.getSelectionModel().getSelectedItem(); tabs.getTabs().removeListener(tabsChangeListener); - tabs.getTabs().remove(tab); - tabs.getTabs().add(index + 1, tab); + tabs.getTabs().remove(selectedTab); + tabs.getTabs().add(currentIndex + 1, selectedTab); tabs.getTabs().addListener(tabsChangeListener); - tabs.getSelectionModel().select(tab); + tabs.getSelectionModel().select(selectedTab); EventManager.get().post(new RequestOpenWalletsEvent()); //Rearrange recent files list }); MenuItem moveLeft = new MenuItem("Move Left"); + moveLeft.setAccelerator(new KeyCodeCombination(KeyCode.LEFT, KeyCombination.CONTROL_DOWN, KeyCombination.SHIFT_DOWN)); moveLeft.setOnAction(event -> { - int index = tabs.getTabs().indexOf(tab); + int currentIndex = tabs.getSelectionModel().getSelectedIndex(); + if(currentIndex == 0) { + return; + } + Tab selectedTab = tabs.getSelectionModel().getSelectedItem(); tabs.getTabs().removeListener(tabsChangeListener); - tabs.getTabs().remove(tab); - tabs.getTabs().add(index - 1, tab); + tabs.getTabs().remove(selectedTab); + tabs.getTabs().add(currentIndex - 1, selectedTab); tabs.getTabs().addListener(tabsChangeListener); - tabs.getSelectionModel().select(tab); + tabs.getSelectionModel().select(selectedTab); EventManager.get().post(new RequestOpenWalletsEvent()); //Rearrange recent files list }); contextMenu.getItems().addAll(moveRight, moveLeft);