diff options
Diffstat (limited to 'tui/widget/list/list.ha')
| -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)); }; |
