diff options
| author | blasty <blasty@local> | 2026-07-25 22:17:17 +0200 |
|---|---|---|
| committer | blasty <blasty@local> | 2026-07-25 22:17:17 +0200 |
| commit | 1d626740b52c9a4eba04cb7f1b2790a70bd9c627 (patch) | |
| tree | 7ae96fd9fc46120e21588d88b2c3af4f25643507 /experiments | |
| parent | nav: don't stack a history entry for the place you're already standing on (diff) | |
| download | ida-tui-1d626740b52c9a4eba04cb7f1b2790a70bd9c627.tar.gz ida-tui-1d626740b52c9a4eba04cb7f1b2790a70bd9c627.tar.xz ida-tui-1d626740b52c9a4eba04cb7f1b2790a70bd9c627.zip | |
nav: one notion of "which pane you're in" — delete _pref
The app carried three overlapping ideas of the current pane: _active, _pref, and
Textual focus. 190e28b tied focus to _active in split; this removes _pref, which
turns out never to have been a variable at all.
_pref was assigned "listing" in __init__ and "listing" on a project binary
switch. Nothing else ever wrote it. But _code_view() branched on it:
return self.query_one(DecompView if self._pref == "decomp" else ListingView)
so it always returned the listing, whatever you were reading. Its two callers put
focus back after the goto prompt closes — so cancelling `g` while in the
pseudocode focused the HIDDEN listing, and the pane you were looking at stopped
answering the keyboard. Arrows did nothing until you clicked. (It also explains
why routing follow through _code_view() earlier made Enter a dead key: the helper
had been quietly lying the whole time.)
_code_view() now returns the active code pane. _pref is gone from the app,
BinaryState and the RPC snapshot keeps "pref" for wire compat, sourced from
_code_mode() — the one place that answers "which code view do we return to from
hex", and a constant by design in the unified layout.
Verified on a live pane both ways: g then Esc in pseudocode, then two Downs.
Fixed, the cursor moves 0 -> 2; with the old lookup restored it sits at 0 with
focus=ListingView. Same check added to the view_toggle scenario, and it fails
without the fix. 195/0, project UI 23/23.
Diffstat (limited to 'experiments')
0 files changed, 0 insertions, 0 deletions
