Redraw and adjust upon terminal resize

This commit is contained in:
Junegunn Choi 2015-01-23 20:30:50 +09:00
parent c35d98dc42
commit 48e16edb47
2 changed files with 17 additions and 0 deletions

View File

@ -421,6 +421,10 @@ func Clear() {
C.clear()
}
func Endwin() {
C.endwin()
}
func Refresh() {
C.refresh()
}

View File

@ -4,10 +4,12 @@ import (
"bytes"
"fmt"
"os"
"os/signal"
"regexp"
"sort"
"strings"
"sync"
"syscall"
"time"
C "github.com/junegunn/fzf/src/curses"
@ -452,6 +454,15 @@ func (t *Terminal) Loop() {
<-timer.C
t.reqBox.Set(reqRefresh, nil)
}()
resizeChan := make(chan os.Signal, 1)
signal.Notify(resizeChan, syscall.SIGWINCH)
go func() {
for {
<-resizeChan
t.reqBox.Set(reqRedraw, nil)
}
}()
}
go func() {
@ -471,6 +482,8 @@ func (t *Terminal) Loop() {
t.suppress = false
case reqRedraw:
C.Clear()
C.Endwin()
C.Refresh()
t.printAll()
case reqClose:
C.Close()