Skip to content

Commit 287ba49

Browse files
committed
fix(gui): show folding actions in code popup menu (#2234)
1 parent 115e563 commit 287ba49

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

jadx-gui/src/main/java/jadx/gui/ui/codearea/AbstractCodeArea.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,6 @@ public AbstractCodeArea(ContentPanel contentPanel, JNode node) {
9292

9393
JadxSettings settings = contentPanel.getTabbedPane().getMainWindow().getSettings();
9494
setLineWrap(settings.isCodeAreaLineWrap());
95-
addWrapLineMenuAction(settings);
9695

9796
ZoomActions.register(this, settings, this::loadSettings);
9897

@@ -135,6 +134,7 @@ protected JPopupMenu createPopupMenu() {
135134
menu.add(createPopupMenuItem(getAction(SELECT_ALL_ACTION)));
136135
}
137136
appendFoldingMenu(menu);
137+
appendWrapLineMenu(menu);
138138
return menu;
139139
}
140140

@@ -146,8 +146,8 @@ protected void appendFoldingMenu(JPopupMenu popup) {
146146
}
147147
}
148148

149-
private void addWrapLineMenuAction(JadxSettings settings) {
150-
JPopupMenu popupMenu = getPopupMenu();
149+
private void appendWrapLineMenu(JPopupMenu popupMenu) {
150+
JadxSettings settings = contentPanel.getTabbedPane().getMainWindow().getSettings();
151151
popupMenu.addSeparator();
152152
JCheckBoxMenuItem wrapItem = new JCheckBoxMenuItem(NLS.str("popup.line_wrap"), getLineWrap());
153153
wrapItem.setAction(new AbstractAction(NLS.str("popup.line_wrap")) {

jadx-gui/src/main/java/jadx/gui/ui/codearea/CodeArea.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import java.awt.event.MouseEvent;
77
import java.util.Objects;
88

9+
import javax.swing.JPopupMenu;
910
import javax.swing.event.PopupMenuEvent;
1011

1112
import org.fife.ui.rsyntaxtextarea.RSyntaxDocument;
@@ -53,7 +54,6 @@ public final class CodeArea extends AbstractCodeArea {
5354
boolean isJavaCode = node instanceof JClass;
5455
if (isJavaCode) {
5556
((RSyntaxDocument) getDocument()).setSyntaxStyle(new JadxTokenMaker(this));
56-
addMenuItems();
5757
}
5858

5959
if (node instanceof JResource && node.makeString().endsWith(".json")) {
@@ -118,9 +118,18 @@ public void refresh() {
118118
setText(getCodeInfo().getCodeStr());
119119
}
120120

121-
private void addMenuItems() {
121+
@Override
122+
protected JPopupMenu createPopupMenu() {
123+
JPopupMenu popup = super.createPopupMenu();
124+
if (node instanceof JClass) {
125+
appendCodeMenuItems(popup);
126+
}
127+
return popup;
128+
}
129+
130+
private void appendCodeMenuItems(JPopupMenu popupMenu) {
122131
ShortcutsController shortcutsController = getMainWindow().getShortcutsController();
123-
JNodePopupBuilder popup = new JNodePopupBuilder(this, getPopupMenu(), shortcutsController);
132+
JNodePopupBuilder popup = new JNodePopupBuilder(this, popupMenu, shortcutsController);
124133
popup.addSeparator();
125134
popup.add(new FindUsageAction(this));
126135
popup.add(new GoToDeclarationAction(this));
@@ -133,7 +142,7 @@ private void addMenuItems() {
133142
getMainWindow().getWrapper().getGuiPluginsContext().appendPopupMenus(this, popup);
134143

135144
// move caret on mouse right button click
136-
popup.getMenu().addPopupMenuListener(new DefaultPopupMenuListener() {
145+
popupMenu.addPopupMenuListener(new DefaultPopupMenuListener() {
137146
@Override
138147
public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
139148
CodeArea codeArea = CodeArea.this;

0 commit comments

Comments
 (0)