From 6bda7c5541168dd21b9ea6197044cc37e9ad1226 Mon Sep 17 00:00:00 2001 From: Dan <46821332+nsadeveloper789@users.noreply.github.com> Date: Wed, 22 Apr 2026 16:22:09 +0000 Subject: [PATCH] GP-6633: Scroll the current snapshot into view, but don't select. --- .../gui/time/DebuggerSnapshotTablePanel.java | 18 ++++++++++++------ .../debug/gui/time/SnapshotTableModel.java | 11 +++++++++++ 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/time/DebuggerSnapshotTablePanel.java b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/time/DebuggerSnapshotTablePanel.java index be4f8f8a04..6052ff5106 100644 --- a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/time/DebuggerSnapshotTablePanel.java +++ b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/time/DebuggerSnapshotTablePanel.java @@ -330,6 +330,17 @@ public class DebuggerSnapshotTablePanel extends JPanel { if (fire) { snapshotTable.repaint(); } + + SnapshotRow row = snapshotTableModel.getRow(coords.getViewSnap()); + if (row == null) { + return; + } + int viewRow = snapshotFilterPanel.getViewRow(row); + if (viewRow == -1) { + return; + } + Rectangle rect = snapshotTable.getCellRect(viewRow, 0, true); + snapshotTable.scrollRectToVisible(rect); } public void setSelectedSnapshot(Long snap) { @@ -344,12 +355,7 @@ public class DebuggerSnapshotTablePanel extends JPanel { return; } - if (snapshotTableModel.getTrace() == null) { - return; - } - TraceSnapshot snapshot = - snapshotTableModel.getTrace().getTimeManager().getSnapshot(snap, false); - SnapshotRow row = snapshotTableModel.rowMap.get(snapshot); + SnapshotRow row = snapshotTableModel.getRow(snap); if (row == null) { snapshotTable.clearSelection(); return; diff --git a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/time/SnapshotTableModel.java b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/time/SnapshotTableModel.java index 734f216078..ddccb5b566 100644 --- a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/time/SnapshotTableModel.java +++ b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/time/SnapshotTableModel.java @@ -190,4 +190,15 @@ class SnapshotTableModel } removeObject(row); } + + public SnapshotRow getRow(long snap) { + if (currentTrace == null) { + return null; + } + TraceSnapshot snapshot = currentTrace.getTimeManager().getSnapshot(snap, false); + if (snapshot == null) { + return null; + } + return rowMap.get(snapshot); + } }