bubbletea/commands_unix.go

24 lines
622 B
Go
Raw Normal View History

2020-05-18 11:41:59 -04:00
// +build darwin dragonfly freebsd linux netbsd openbsd solaris
package tea
2020-05-18 11:41:59 -04:00
import (
"os"
"os/signal"
"syscall"
)
// OnResize is used to listen for window resizes. Use GetTerminalSize to get
// the windows dimensions. We don't fetch the window size with this command to
// avoid a potential performance hit making the necessary system calls, since
// this command could potentially run a lot. On that note, consider debouncing
// this function.
func OnResize(newMsgFunc func() Msg) Cmd {
return func() Msg {
sig := make(chan os.Signal, 1)
2020-05-18 11:41:59 -04:00
signal.Notify(sig, syscall.SIGWINCH)
<-sig
return newMsgFunc()
}
}