aboutsummaryrefslogtreecommitdiffstats
path: root/experiments
diff options
context:
space:
mode:
authorblasty <blasty@local>2026-07-24 00:27:40 +0200
committerblasty <blasty@local>2026-07-24 00:27:40 +0200
commit6408a778effae4247d58c12b5f2bba9e688aab5f (patch)
tree61913783ab3f1426021bfb42ac549531d75a3246 /experiments
parentnav: snap an xref-into-pseudocode jump to the line that holds the symbol (diff)
downloadida-tui-6408a778effae4247d58c12b5f2bba9e688aab5f.tar.gz
ida-tui-6408a778effae4247d58c12b5f2bba9e688aab5f.tar.xz
ida-tui-6408a778effae4247d58c12b5f2bba9e688aab5f.zip
ux: block with a "finding xrefs…" overlay while gathering xrefs
Gathering xrefs (xrefs_to + function_of over every site) runs in a worker, so the UI stayed live and a second 'x' (or other action) fired into a half-finished operation — duplicate requests, dialogs stacking, generally confusing behavior. Add a small blocking BusyScreen modal shown the instant 'x' is pressed: * re-entry guard (_xref_active) ignores a second 'x' while one gather is in flight, and the modal captures input anyway; * _present_xrefs dismisses it and opens the dialog when results are ready; * Esc cancels — a worker that finishes after the cancel won't pop a stale dialog (the _xref_active flag gates it); * every exit path clears it (no-subject case, and a try/except around the worker's slow calls) so it can't get stuck. Verified: 1st 'x' -> BusyScreen (xref_active=True); 2nd 'x' ignored (stack unchanged); results -> dialog + busy gone; Esc -> cancelled, no late dialog. follow_xrefs/xref_labels/decomp_nav/decomp_follow_self/view_toggle/disasm_nav/ search/mouse/listing_view/continuous_view/func_banners/startup green.
Diffstat (limited to 'experiments')
0 files changed, 0 insertions, 0 deletions