Fix a race where artifacts could print when exiting a program

This commit also consolidates the exit operations for consistency's
sake, and adds a kill() method to renderers for stopping them without
performing any final rendering.
This commit is contained in:
Christian Rocha
2021-05-19 21:35:36 -04:00
parent 85ab476698
commit 1f773e8f20
4 changed files with 46 additions and 16 deletions

View File

@@ -2,10 +2,26 @@ package tea
// renderer is the interface for Bubble Tea renderers.
type renderer interface {
// Start the renderer.
start()
// Stop the renderer, but render the final frame in the buffer, if any.
stop()
// Stop the renderer without doing any final rendering.
kill()
// Write a frame to the renderer. The renderer can write this data to ouput
// at its discretion.
write(string)
// Request a full re-render.
repaint()
// Whether or not the alternate screen buffer is enabled.
altScreen() bool
// Record internally that the alternate screen buffer is enabled. This does
// should not actually toggle the alternate screen buffer.
setAltScreen(bool)
}