diff --git a/tools/tui/loop.go b/tools/tui/loop.go index 368970fa6..207d1d791 100644 --- a/tools/tui/loop.go +++ b/tools/tui/loop.go @@ -83,6 +83,9 @@ type Loop struct { // Called when the terminal is resize OnResize func(loop *Loop, old_size ScreenSize, new_size ScreenSize) error + + // Called when writing is done + OnWriteComplete func(loop *Loop) error } func (self *Loop) update_screen_size() error { @@ -370,6 +373,12 @@ func (self *Loop) Run() (err error) { if err != nil { return err } + if self.OnWriteComplete != nil && len(self.write_buf) == 0 { + err = self.OnWriteComplete(self) + if err != nil { + return err + } + } } if selector.IsReadyToRead(tty_fd) { read_buf = read_buf[:cap(read_buf)]