code: func (a *Application) Suspend(f func()) bool {
  	a.RLock()
  	screen := a.screen
  	a.RUnlock()
  	if screen == nil {
  		return false // Screen has not yet been initialized.
  	}
  
  	// Enter suspended mode.
  	screen.Fini()
  
  	// Wait for "f" to return.
  	f()
  
  	// Make a new screen.
  	var err error
  	screen, err = tcell.NewScreen()
  	if err != nil {
  		panic(err)
  	}
  	a.screenReplacement <- screen
  	// One key event will get lost, see https://github.com/gdamore/tcell/issues/194
  
  	// Continue application loop.
  	return true
  }
docs: // Suspend temporarily suspends the application by exiting terminal UI mode and
  // invoking the provided function "f". When "f" returns, terminal UI mode is
  // entered again and the application resumes.
  //
  // A return value of true indicates that the application was suspended and "f"
  // was called. If false is returned, the application was already suspended,
  // terminal UI mode was not exited, and "f" was not called.