From 2e3579a8fda3bc794ec2323213829f4ecd8a4776 Mon Sep 17 00:00:00 2001 From: Skylot Date: Sat, 3 Jun 2023 14:38:33 +0100 Subject: [PATCH] fix(gui): disable rename action in tree popup if not allowed (#1890) --- jadx-gui/src/main/java/jadx/gui/ui/dialog/RenameDialog.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/jadx-gui/src/main/java/jadx/gui/ui/dialog/RenameDialog.java b/jadx-gui/src/main/java/jadx/gui/ui/dialog/RenameDialog.java index 020cae58b..1ccd39de3 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/dialog/RenameDialog.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/dialog/RenameDialog.java @@ -65,7 +65,7 @@ public class RenameDialog extends JDialog { private transient JTextField renameField; private transient JButton renameBtn; - public static boolean rename(MainWindow mainWindow, JNode source, JRenameNode node) { + public static boolean rename(MainWindow mainWindow, @Nullable JNode source, JRenameNode node) { RenameDialog renameDialog = new RenameDialog(mainWindow, source, node); UiUtils.uiRun(() -> renameDialog.setVisible(true)); UiUtils.uiRun(renameDialog::initRenameField); // wait for UI events to propagate @@ -75,12 +75,13 @@ public class RenameDialog extends JDialog { public static JPopupMenu buildRenamePopup(MainWindow mainWindow, JRenameNode node) { JMenuItem jmi = new JMenuItem(NLS.str("popup.rename")); jmi.addActionListener(action -> RenameDialog.rename(mainWindow, null, node)); + jmi.setEnabled(node.canRename()); JPopupMenu menu = new JPopupMenu(); menu.add(jmi); return menu; } - private RenameDialog(MainWindow mainWindow, JNode source, JRenameNode node) { + private RenameDialog(MainWindow mainWindow, @Nullable JNode source, JRenameNode node) { super(mainWindow); this.mainWindow = mainWindow; this.cache = mainWindow.getCacheObject();