aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorblasty <blasty@local>2026-07-09 19:17:43 +0200
committerblasty <blasty@local>2026-07-09 19:17:43 +0200
commit868f54fed8f3cb911bf4ac8f7f6c50259585c484 (patch)
treee25e2c47d952824f733308283674cfa88a97b581
parentdecompiler: line-number gutter (diff)
downloadida-tui-868f54fed8f3cb911bf4ac8f7f6c50259585c484.tar.gz
ida-tui-868f54fed8f3cb911bf4ac8f7f6c50259585c484.tar.xz
ida-tui-868f54fed8f3cb911bf4ac8f7f6c50259585c484.zip
cap the function pane width so it doesn't dominate wide terminals
Was 42% (≈100 cols on a 240-wide term). Now 30% clamped to min 42 / max 44, and columns tightened to 10/21/7 -> a stable ~41-43 cols that fits the content: 46% on a 90-col term but only 18% at 240 (code area 194 vs ~140 before). Ctrl+B still hides it. pilot suite 57/57.
-rw-r--r--idatui/app.py8
-rw-r--r--tests/test_tui.py3
2 files changed, 7 insertions, 4 deletions
diff --git a/idatui/app.py b/idatui/app.py
index 918aadc..b5bb5f2 100644
--- a/idatui/app.py
+++ b/idatui/app.py
@@ -943,9 +943,9 @@ class FunctionsPanel(Vertical):
self._filter.display = False
yield self._filter
table = DataTable(id="func-table", cursor_type="row", zebra_stripes=True)
- table.add_column("Address", width=12)
- table.add_column("Function", width=28)
- table.add_column("Size", width=8)
+ table.add_column("Address", width=10)
+ table.add_column("Function", width=21)
+ table.add_column("Size", width=7)
yield table
@@ -984,7 +984,7 @@ class IdaTui(App):
CSS = """
Screen { layout: vertical; }
#panes { height: 1fr; }
- #left { width: 42%; border-right: solid $panel; }
+ #left { width: 30%; min-width: 42; max-width: 44; border-right: solid $panel; }
#func-table { height: 1fr; }
#func-filter { dock: top; }
DisasmView { width: 1fr; padding: 0 1; }
diff --git a/tests/test_tui.py b/tests/test_tui.py
index 9a1c650..0419842 100644
--- a/tests/test_tui.py
+++ b/tests/test_tui.py
@@ -51,6 +51,9 @@ async def run(db):
loaded = await wait_until(pilot, lambda: table.row_count > 0)
check("function list populated", loaded, f"rows={table.row_count}")
+ left = app.query_one("#left")
+ check("function pane width is capped (doesn't eat the screen)",
+ left.size.width <= 44, f"width={left.size.width}")
got_all = await wait_until(
pilot, lambda: "functions" in str(status.render()) and "…" not in str(status.render()),