diff --git a/jadx-gui/src/main/java/jadx/gui/ui/tab/TabComponent.java b/jadx-gui/src/main/java/jadx/gui/ui/tab/TabComponent.java index 14d3cdb35..2c8a4bdc5 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/tab/TabComponent.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/tab/TabComponent.java @@ -243,9 +243,10 @@ public class TabComponent extends JPanel { if (tabs.size() > 1) { JMenuItem closeOther = new JMenuItem(NLS.str("tabs.closeOthers")); closeOther.addActionListener(e -> { + JNode currentNode = getNode(); for (TabBlueprint tab : tabs) { - if (tab != getBlueprint()) { - tabsController.closeTab(getNode(), true); + if (tab.getNode() != currentNode) { + tabsController.closeTab(tab, true); } } }); @@ -310,7 +311,6 @@ public class TabComponent extends JPanel { if (blueprint == null) { throw new JadxRuntimeException("TabComponent does not have a corresponding TabBlueprint"); } - return blueprint; } diff --git a/jadx-gui/src/main/java/jadx/gui/ui/tab/TabsController.java b/jadx-gui/src/main/java/jadx/gui/ui/tab/TabsController.java index ff0b6ef9d..74f41ef72 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/tab/TabsController.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/tab/TabsController.java @@ -163,16 +163,16 @@ public class TabsController { public void closeTab(JNode node, boolean considerPins) { TabBlueprint blueprint = getTabByNode(node); - - if (blueprint == null) { - return; + if (blueprint != null) { + closeTab(blueprint, considerPins); } + } + public void closeTab(TabBlueprint blueprint, boolean considerPins) { if (forceClose) { closeTabForce(blueprint); return; } - if (!considerPins || !blueprint.isPinned()) { if (!blueprint.isReferenced()) { closeTabForce(blueprint); @@ -182,7 +182,7 @@ public class TabsController { } } - /* + /** * Removes Tab from everywhere */ private void closeTabForce(TabBlueprint blueprint) { @@ -190,7 +190,7 @@ public class TabsController { tabsMap.remove(blueprint.getNode()); } - /* + /** * Hides Tab from TabbedPane */ private void closeTabSoft(TabBlueprint blueprint) {