func Deinit() {
	wait := make(chan interface{})
	Queue(func() {
		termbox.Close()
		focus = nil
		prevFocus = nil
		windows = make(map[int]*Window) // toss all windows

		rawMtx.Lock()
		termRaw = false
		rawMtx.Unlock()

		wait <- true
	})
	<-wait
}
func Deinit() {
	wait := make(chan interface{})
	Queue(func() {
		termbox.Close()
		focus = nil
		prevFocus = nil
		windows = make(map[int]*Window) 

		rawMtx.Lock()
		termRaw = false
		rawMtx.Unlock()

		wait <- true
	})
	<-wait
}
func Deinit ( ) { wait := make ( chan interface { } ) Queue ( func ( ) { termbox . Close ( ) focus = nil prevFocus = nil windows = make ( map [ int ] * Window ) // toss all windows rawMtx . Lock ( ) termRaw = false rawMtx . Unlock ( ) wait <- true } ) <- wait }
// Deinit switches the terminal back to cooked mode and it terminates managed
// window mode.  Init must be called again if a switch is required again.
// Deinit shall be called on application exit; failing to do so may leave the
// terminal corrupted.  If that does happen typing "reset" on the shell usually
// fixes this problem.
Deinit switches the terminal back to cooked mode and it terminates managed window mode . Init must be called again if a switch is required again . Deinit shall be called on application exit ; failing to do so may leave the terminal corrupted . If that does happen typing reset on the shell usually fixes this problem .