From b78745a87bbbaf1506eea1f1a66dad465c178ac0 Mon Sep 17 00:00:00 2001 From: Skylot <118523+skylot@users.noreply.github.com> Date: Mon, 22 Dec 2025 18:32:03 +0000 Subject: [PATCH] fix(gui): reset selected tab on last tabs closed --- jadx-gui/src/main/java/jadx/gui/settings/JadxProject.java | 3 --- jadx-gui/src/main/java/jadx/gui/ui/tab/TabbedPane.java | 3 +++ jadx-gui/src/main/java/jadx/gui/ui/tab/TabsController.java | 4 ++++ 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/jadx-gui/src/main/java/jadx/gui/settings/JadxProject.java b/jadx-gui/src/main/java/jadx/gui/settings/JadxProject.java index 9daa093cf..430603ef4 100644 --- a/jadx-gui/src/main/java/jadx/gui/settings/JadxProject.java +++ b/jadx-gui/src/main/java/jadx/gui/settings/JadxProject.java @@ -158,9 +158,6 @@ public class JadxProject { .map(TabStateViewAdapter::build) .filter(Objects::nonNull) .collect(Collectors.toList()); - if (tabStateList.isEmpty()) { - return; - } if (data.setOpenTabs(tabStateList)) { changed(); } diff --git a/jadx-gui/src/main/java/jadx/gui/ui/tab/TabbedPane.java b/jadx-gui/src/main/java/jadx/gui/ui/tab/TabbedPane.java index b8cd13249..34bca37da 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/tab/TabbedPane.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/tab/TabbedPane.java @@ -455,6 +455,9 @@ public class TabbedPane extends JTabbedPane implements ITabStatesListener { } else if (removalIdx == 0) { // select right tab setSelectedIndex(removalIdx + 1); } + } else { + // no other tabs => inform controller to reset selection + controller.deselectTab(); } } 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 adfa1e1ac..4653b046e 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 @@ -107,6 +107,10 @@ public class TabsController { listeners.forEach(l -> l.onTabSelect(selectedTab)); } + public void deselectTab() { + selectedTab = null; + } + /** * Jump to node definition */