diff options
| -rw-r--r-- | handlers.ha | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/handlers.ha b/handlers.ha index 854aee7..2cf34e7 100644 --- a/handlers.ha +++ b/handlers.ha @@ -217,8 +217,22 @@ fn runehandler(l: *widget::widget, r: libtui::key) bool = { fmt::fprintln(os::stderr, "This is not detected")!; case => let us = utf8::encoderune(r); - if (len(us) > 0 && us[0] == 13u8) { - fmt::fprintln(os::stderr, "newline")!; + // 0x0d is carriage return in utf8 + if (len(us) > 0 && us[0] == 0x0du8) { + // to print properly suspend the ui, print, then resume + libtui::suspend(&l.widget.ui); + //fmt::println(l.items[l.cursor])!; + match (list::selected(*l)) { + case let s: str => + fmt::println(s)!; + case let s: []str => + defer free(s); + const out = strings::join("\n", s...); + defer free(out); + fmt::println(out)!; + }; + libtui::resume(&l.widget.ui); + return true; }; }; return false; |
