summaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorblasty <peter@haxx.in>2026-07-25 21:29:37 +0200
committerblasty <peter@haxx.in>2026-07-25 21:29:37 +0200
commit9d6a8e561b33897312d0031308f50117f9582e82 (patch)
tree773797cf52d2ca622cb735cb0a563520b0bb9627 /docs
parentpalette: match case-insensitively in BOTH directions (diff)
downloadida-tui-9d6a8e561b33897312d0031308f50117f9582e82.tar.gz
ida-tui-9d6a8e561b33897312d0031308f50117f9582e82.tar.xz
ida-tui-9d6a8e561b33897312d0031308f50117f9582e82.zip
nav: don't stack a history entry for the place you're already standing on
Walking back with Esc ended in a dead keypress: nav_depth dropped but the screen didn't change. Measured on a live pane, four Escs after one follow: Esc #1 -> sub_3500 L7 (where we followed from) good Esc #2 -> main L54 decomp (where we followed from) good Esc #3 -> main L344 listing good Esc #4 -> main L344 listing -- nav 2 -> 1, nothing moved The app auto-lands on main at startup, and opening main again from Ctrl+N appended a second, identical entry. Every "navigate to where you already are" did this; the extra Esc it bought is invisible except that it does nothing, which is exactly what "back is broken" feels like from the keyboard. Both push sites now go through _push_nav, which replaces the top entry instead of appending when the target is the same (ea, view, line) — the newer entry's metadata still wins. _same_spot compares dec_cursor for pseudocode and cursor for the listing. Note what is NOT a duplicate: the first follow after Tab-to-pseudocode still pushes twice (nav 1 -> 3). That's deliberate — Tab leaves _cur transient and off the stack, so the follow records the pseudocode position first, which is why Esc #1 above returns to main L54 rather than dropping you into the listing. Verified that subsequent follows push exactly one each. tests: the palette scenario re-opens the function it is already on and asserts nav depth is unchanged. Fails without the fix (nav 2 -> 3). 194/0.
Diffstat (limited to 'docs')
0 files changed, 0 insertions, 0 deletions