From 042b2988fbb2ad4e0b2cfff9037f9304ad5a598e Mon Sep 17 00:00:00 2001 From: blasty Date: Fri, 24 Jul 2026 20:31:50 +0200 Subject: decomp: fix stuck 'decompiling' spinner when re-opening a loaded function The F5-from-listing overlay fix raises dec.loading=True before _show_active, but _show_active only clears it via _load_decomp when the function needs (re)decompiling. F5 on a function already shown in the pseudocode pane (dec.loaded_ea == cur.ea) took the else branch, which never cleared loading -> the spinner stayed up forever. Clear dec.loading=False in that branch. Pilot view_toggle gains a check: F5 the same cached function again and assert the overlay clears (8/8). --- idatui/app.py | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'idatui') diff --git a/idatui/app.py b/idatui/app.py index 5a50683..f098b71 100644 --- a/idatui/app.py +++ b/idatui/app.py @@ -4365,6 +4365,10 @@ class IdaTui(App): dec.loading = True # gray out + 'decompiling…' overlay self._load_decomp(self._cur.ea, self._cur.name) else: + # Already showing this function: clear any overlay raised by the + # F5-from-listing path (no re-decompile happens here, so nothing + # else would). + dec.loading = False self._status_for_cur("pseudocode") # -- hex view ---------------------------------------------------------- # -- cgit v1.3.1-sl0p