diff options
| author | Julian Hurst <ark@mansus.space> | 2022-09-11 13:22:07 +0200 |
|---|---|---|
| committer | Julian Hurst <ark@mansus.space> | 2022-09-11 13:22:07 +0200 |
| commit | 0a1092dea864640cc9f1b818a7d9b35d72575d9e (patch) | |
| tree | 43d04d6fb58bfca734f7aae88f63ae9c3fa896ca | |
| parent | e911aba2b0b7d18262856782ba3ddac9a8fa5d7f (diff) | |
| download | ilhare-0a1092dea864640cc9f1b818a7d9b35d72575d9e.tar.gz | |
Prevent taking total tty size if unecessary
| -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; |
