From ed3ca4cceb98113129d02adc7fa08970cb78738f Mon Sep 17 00:00:00 2001 From: Radek Davidek Date: Thu, 22 Jan 2026 16:23:12 +0100 Subject: [PATCH] shift+enter fixed --- .../cz/kamma/kfmanager/ui/FilePanelTab.java | 24 +++++++++++++++---- .../cz/kamma/kfmanager/ui/MainWindow.java | 9 +++++++ 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/src/main/java/cz/kamma/kfmanager/ui/FilePanelTab.java b/src/main/java/cz/kamma/kfmanager/ui/FilePanelTab.java index dc74cc1..3035981 100644 --- a/src/main/java/cz/kamma/kfmanager/ui/FilePanelTab.java +++ b/src/main/java/cz/kamma/kfmanager/ui/FilePanelTab.java @@ -1678,11 +1678,25 @@ public class FilePanelTab extends JPanel { JMenuItem deleteItem = new JMenuItem("Delete"); setMenuItemEnabled(deleteItem, !isParentDir); deleteItem.addActionListener(ae -> { - int res = JOptionPane.showConfirmDialog(FilePanelTab.this, - "Really delete '" + item.getName() + "'?", - "Delete", - JOptionPane.YES_NO_OPTION, - JOptionPane.WARNING_MESSAGE); + JOptionPane pane = new JOptionPane("Really delete '" + item.getName() + "'?", + JOptionPane.WARNING_MESSAGE, + JOptionPane.YES_NO_OPTION); + + JDialog dialog = pane.createDialog(FilePanelTab.this, "Delete"); + + pane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, KeyEvent.SHIFT_DOWN_MASK), "confirmShiftEnter"); + pane.getActionMap().put("confirmShiftEnter", new AbstractAction() { + @Override + public void actionPerformed(ActionEvent e) { + pane.setValue(JOptionPane.YES_OPTION); + dialog.dispose(); + } + }); + + dialog.setVisible(true); + Object result = pane.getValue(); + int res = (result instanceof Integer) ? (Integer) result : JOptionPane.CLOSED_OPTION; + if (res == JOptionPane.YES_OPTION) { java.util.List toDelete = new java.util.ArrayList<>(); toDelete.add(item); diff --git a/src/main/java/cz/kamma/kfmanager/ui/MainWindow.java b/src/main/java/cz/kamma/kfmanager/ui/MainWindow.java index da1e733..6a366e8 100644 --- a/src/main/java/cz/kamma/kfmanager/ui/MainWindow.java +++ b/src/main/java/cz/kamma/kfmanager/ui/MainWindow.java @@ -1548,6 +1548,15 @@ public class MainWindow extends JFrame { } }); + pane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, KeyEvent.SHIFT_DOWN_MASK), "confirmShiftEnter"); + pane.getActionMap().put("confirmShiftEnter", new AbstractAction() { + @Override + public void actionPerformed(ActionEvent e) { + pane.setValue(options[0]); + dialog.dispose(); + } + }); + dialog.setVisible(true); // Ensure focus returns to main window after dialog