diff --git a/src/curses/curses.go b/src/curses/curses.go index debdeaf4..06493a2a 100644 --- a/src/curses/curses.go +++ b/src/curses/curses.go @@ -11,7 +11,6 @@ import "C" import ( "fmt" "os" - "os/signal" "syscall" "time" "unicode/utf8" @@ -271,14 +270,6 @@ func Init(theme *ColorTheme, black bool, mouse bool) { C.noecho() C.raw() // stty dsusp undef - intChan := make(chan os.Signal, 1) - signal.Notify(intChan, os.Interrupt, os.Kill) - go func() { - <-intChan - Close() - os.Exit(2) - }() - if theme != nil { C.start_color() initPairs(theme, black) diff --git a/src/terminal.go b/src/terminal.go index 9a92ba43..ab77ecfe 100644 --- a/src/terminal.go +++ b/src/terminal.go @@ -727,6 +727,13 @@ func (t *Terminal) Loop() { t.reqBox.Set(reqRefresh, nil) }() + intChan := make(chan os.Signal, 1) + signal.Notify(intChan, os.Interrupt, os.Kill) + go func() { + <-intChan + t.reqBox.Set(reqQuit, nil) + }() + resizeChan := make(chan os.Signal, 1) signal.Notify(resizeChan, syscall.SIGWINCH) go func() {