diff options
Diffstat (limited to 'main.ha')
| -rw-r--r-- | main.ha | 15 |
1 files changed, 13 insertions, 2 deletions
@@ -59,8 +59,13 @@ fn resize(list: *list::listwidget) void = { rows = list.sz.rows, cols = list.sz.cols, }; + let rows: (u16 | size) = if (sz.rows - 1u16 < len(list.items)) { + yield sz.rows - 1u16; + } else { + yield len(list.items); + }; list::setsize(list, tty::ttysize { - rows = sz.rows - 1u16, + rows = rows: u16, columns = sz.columns, }); list::resize(list, oldsz); @@ -83,8 +88,13 @@ export fn main() void = { let ui = libtui::init(); defer libtui::finish(&ui); let sz = libtui::getwinsize(ui)!; + let rows: (u16 | size) = if (sz.rows - 1u16 < len(items)) { + yield sz.rows - 1u16; + } else { + yield len(items); + }; let l = list::newlistsz(ui, tty::ttysize { - rows = sz.rows - 1u16, + rows = rows: u16, columns = sz.columns, }, items...); libtui::addlistener(&ui, &globalrunehandler); @@ -116,6 +126,7 @@ export fn main() void = { }]; for (true) { + libtui::clear(l.widget.ui); match (layout::print(layout)) { case void => yield; |
