From 0a1092dea864640cc9f1b818a7d9b35d72575d9e Mon Sep 17 00:00:00 2001 From: Julian Hurst Date: Sun, 11 Sep 2022 13:22:07 +0200 Subject: Prevent taking total tty size if unecessary --- main.ha | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/main.ha b/main.ha index 7117cca..3191e62 100644 --- a/main.ha +++ b/main.ha @@ -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; -- cgit v1.2.3