aboutsummaryrefslogtreecommitdiff
path: root/main.ha
diff options
context:
space:
mode:
authorJulian Hurst <ark@mansus.space>2022-09-11 13:22:07 +0200
committerJulian Hurst <ark@mansus.space>2022-09-11 13:22:07 +0200
commit0a1092dea864640cc9f1b818a7d9b35d72575d9e (patch)
tree43d04d6fb58bfca734f7aae88f63ae9c3fa896ca /main.ha
parente911aba2b0b7d18262856782ba3ddac9a8fa5d7f (diff)
downloadilhare-0a1092dea864640cc9f1b818a7d9b35d72575d9e.tar.gz
Prevent taking total tty size if unecessary
Diffstat (limited to 'main.ha')
-rw-r--r--main.ha15
1 files 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;