summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorblasty <peter@haxx.in>2026-07-25 19:12:45 +0200
committerblasty <peter@haxx.in>2026-07-25 19:12:45 +0200
commitdc86630969c42e2769e0bde7329416d8646dae83 (patch)
tree24756f671d0d1e9162683352f464cbe787522dab
parentdecomp: drop stale navigation results so Esc isn't silently undone (diff)
downloadida-tui-dc86630969c42e2769e0bde7329416d8646dae83.tar.gz
ida-tui-dc86630969c42e2769e0bde7329416d8646dae83.tar.xz
ida-tui-dc86630969c42e2769e0bde7329416d8646dae83.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: