summaryrefslogtreecommitdiffstats
path: root/systemd
diff options
context:
space:
mode:
authorblasty <peter@haxx.in>2026-07-24 00:27:40 +0200
committerblasty <peter@haxx.in>2026-07-24 00:27:40 +0200
commit04c2547d6376363b96fab8040ee8753fc42d7d7f (patch)
tree86d525c0a4297e0db2658e39005aeee3254a2e5d /systemd
parentnav: snap an xref-into-pseudocode jump to the line that holds the symbol (diff)
downloadida-tui-04c2547d6376363b96fab8040ee8753fc42d7d7f.tar.gz
ida-tui-04c2547d6376363b96fab8040ee8753fc42d7d7f.tar.xz
ida-tui-04c2547d6376363b96fab8040ee8753fc42d7d7f.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 'systemd')
0 files changed, 0 insertions, 0 deletions