diff options
| author | Julian Hurst <julian.hurst@digdash.com> | 2025-03-12 10:16:02 +0100 |
|---|---|---|
| committer | Julian Hurst <julian.hurst@digdash.com> | 2025-03-12 10:16:02 +0100 |
| commit | 4eeda7244acbc97c2937ecb6768309539e28e35a (patch) | |
| tree | e3d1fe2f479fd1240597af31ede39c9cf10761cb /tui | |
| parent | 977f80f4b60983d03d069e11032e9cd15339b6d8 (diff) | |
| download | hare-tui-4eeda7244acbc97c2937ecb6768309539e28e35a.tar.gz | |
list: Handle size properly
Diffstat (limited to 'tui')
| -rw-r--r-- | tui/widget/list/list.ha | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/tui/widget/list/list.ha b/tui/widget/list/list.ha index a4ec77e..7e60299 100644 --- a/tui/widget/list/list.ha +++ b/tui/widget/list/list.ha @@ -52,7 +52,18 @@ export fn printlist(widget: *widget::widget) void = { const list = widget: *list; let st = memio::dynamic(); defer io::close(&st)!; - memio::concat(&st, strings::join("\n", list.items[list.frame.start..list.frame.end]...))!; + for (let i = list.frame.start; i < list.frame.end; i += 1) { + let item = match (list.widget.sz) { + case let sz: tty::ttysize => + yield strings::sub(list.items[i], 0z, sz.columns); + case widget::nosize => + yield list.items[i]; + }; + memio::concat(&st, item)!; + if (i != list.frame.end - 1) { + memio::concat(&st, "\n")!; + }; + }; widget::print(list.widget.out, memio::string(&st)!, (1, 1)); }; |
