aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorblasty <blasty@local>2026-07-25 19:12:45 +0200
committerblasty <blasty@local>2026-07-25 19:12:45 +0200
commitcc44f5cf4cfc8cef057c129831734c4b0e334bb2 (patch)
tree14481beb66b9338cedba9dab879c7cd428ac95f1
parentdecomp: drop stale navigation results so Esc isn't silently undone (diff)
downloadida-tui-cc44f5cf4cfc8cef057c129831734c4b0e334bb2.tar.gz
ida-tui-cc44f5cf4cfc8cef057c129831734c4b0e334bb2.tar.xz
ida-tui-cc44f5cf4cfc8cef057c129831734c4b0e334bb2.zip
nav: tell the user something is happening when Esc needs a decompile
Going back to a function that isn't currently decompiled has to decompile it first, and until that lands both panes still show where you were — so Esc read as a no-op and people press it again. action_back now sets a status the moment it pops ("◂ back to <name>…"), which _show_active then upgrades to "<name> — decompiling…" with the spinner overlay up. Verified: immediately after Esc, with no pause at all, the status says decompiling and dec.loading is True; it settles on the target a moment later. Suite 192/0.
-rw-r--r--idatui/app.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/idatui/app.py b/idatui/app.py
index 3c23784..57ec7df 100644
--- a/idatui/app.py
+++ b/idatui/app.py
@@ -4077,7 +4077,12 @@ class IdaTui(App):
if len(self._nav) > 1:
self._nav_seq += 1 # invalidate any navigation still in flight
self._nav.pop()
- self._open_entry(self._nav[-1], push=False)
+ # Say something immediately: going back can need a decompile, and
+ # until it lands the panes still show where you were — with no
+ # feedback Esc reads as a no-op.
+ dest = self._nav[-1]
+ self._status(f"\u25c2 back to {dest.name}\u2026")
+ self._open_entry(dest, push=False)
elif self.query_one("#left", FunctionsPanel).display:
table.focus()
else: