aboutsummaryrefslogtreecommitdiffstats
path: root/experiments
diff options
context:
space:
mode:
authorblasty <blasty@local>2026-07-25 18:59:43 +0200
committerblasty <blasty@local>2026-07-25 18:59:43 +0200
commitb2f221691f88af382c30b6a1d9060b75ea7c19dd (patch)
tree4f8fb8e264a28e30e4bfef3930f1dbded3add205 /experiments
parentprojects: don't duplicate a binary that's already in the project (diff)
downloadida-tui-b2f221691f88af382c30b6a1d9060b75ea7c19dd.tar.gz
ida-tui-b2f221691f88af382c30b6a1d9060b75ea7c19dd.tar.xz
ida-tui-b2f221691f88af382c30b6a1d9060b75ea7c19dd.zip
decomp: repaint on a same-viewport jump (Esc back looked like it did nothing)
Esc in the pseudocode view navigated correctly but the pane kept showing the old cursor line until you pressed something else. The listing view was fine because its path goes through load(), which relayouts and repaints. DecompView.goto() sets `cursor`, which is reactive(repaint=False), and then leaves redrawing to _apply_scroll — but that only repaints via call_after_refresh, which needs a refresh to actually happen. Jump somewhere inside the viewport already on screen (exactly what Esc-back within a function does) and the scroll doesn't change, so nothing asked the widget to redraw: the old highlight stayed and the status line had already updated, which is why it looked like the jump half-worked. _move() doesn't hit this because it repaints the old and new rows via _refresh_lines. goto() now refreshes explicitly. Verification note: a render_line-level probe CANNOT see this bug — render_line reads self.cursor live, so it always reports the new position. The staleness is in Textual's compositor cache, which only a repaint request clears. Verified by spying on the widget's refresh instead: a same-viewport goto now requests one (it requested none before). Suite 192/0.
Diffstat (limited to 'experiments')
0 files changed, 0 insertions, 0 deletions