aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorblasty <blasty@local>2026-07-24 21:56:04 +0200
committerblasty <blasty@local>2026-07-24 21:56:04 +0200
commitcea4e6a54b811c64fc660dd59e8eaea5cf8bbce8 (patch)
tree2537c14ffb4d7cbaaae254606be4c1b3706c7142
parentsplit-view phase 1: side-by-side listing <-> pseudocode layout (diff)
downloadida-tui-cea4e6a54b811c64fc660dd59e8eaea5cf8bbce8.tar.gz
ida-tui-cea4e6a54b811c64fc660dd59e8eaea5cf8bbce8.tar.xz
ida-tui-cea4e6a54b811c64fc660dd59e8eaea5cf8bbce8.zip
split: guard toggle behind prompt-active; clear _split in the pilot reset
Two small correctness tidies before phase 2: * action_toggle_split now no-ops while a search/rename/... prompt owns the keyboard (parity with the other app actions; a stray 's' can't split mid-edit). * the pilot reset() clears app._split so split state can't leak into the next scenario if one crashes mid-run.
-rw-r--r--idatui/app.py2
-rw-r--r--tests/test_scenarios.py1
2 files changed, 3 insertions, 0 deletions
diff --git a/idatui/app.py b/idatui/app.py
index 68e23df..b923a7c 100644
--- a/idatui/app.py
+++ b/idatui/app.py
@@ -3088,6 +3088,8 @@ class IdaTui(App):
def action_toggle_split(self) -> None:
"""Toggle the side-by-side listing ⇄ pseudocode view (Ghidra-style)."""
+ if self._prompt_active():
+ return # a search/rename/… prompt owns the keyboard
if self._cur is None or self.program is None:
self._status("open a function first")
return
diff --git a/tests/test_scenarios.py b/tests/test_scenarios.py
index aa0ecbf..cfa3e3a 100644
--- a/tests/test_scenarios.py
+++ b/tests/test_scenarios.py
@@ -227,6 +227,7 @@ class Ctx:
app._pref = "decomp"
if app._active == "hex":
app._active = "decomp"
+ app._split = False
await self.pause(0.02)