From 331c4aaa5ef0c6aa97fefafd1a818d5467040bd2 Mon Sep 17 00:00:00 2001 From: Skylot <118523+skylot@users.noreply.github.com> Date: Mon, 26 Jan 2026 19:36:10 +0000 Subject: [PATCH] fix(gui): load class code before resolving jump position to get corrent value --- jadx-gui/src/main/java/jadx/gui/ui/tab/TabbedPane.java | 4 ++-- jadx-gui/src/main/java/jadx/gui/ui/tab/TabsController.java | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) 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 34bca37da..ef5b1404e 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 @@ -228,9 +228,9 @@ public class TabbedPane extends JTabbedPane implements ITabStatesListener { } selectTab(contentPanel); int pos = jumpPos.getPos(); - if (pos < 0) { + if (pos <= 0) { LOG.warn("Invalid jump: {}", jumpPos, new JadxRuntimeException()); - pos = 0; + pos = Math.max(0, jumpNode.getPos()); } contentPanel.scrollToPos(pos); return contentPanel; 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 e21e6f4a2..6c97d50b9 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 @@ -135,12 +135,13 @@ public class TabsController { return; } } - if (node.getRootClass() == null) { + JClass clsRootClass = node.getRootClass(); + if (clsRootClass == null) { // not a class, select tab (without position scroll) selectTab(node, fromTree); return; } - codeJump(new JumpPosition(node), fromTree); + loadCodeWithUIAction(clsRootClass, () -> codeJump(new JumpPosition(node), fromTree)); } private void loadCodeWithUIAction(JClass cls, Runnable action) {