forked from Mirrors/bubbletea
When showing/hiding the cursor operate on the program's io.Writer
Previously we were operating on io.Stdout.
This commit is contained in:
parent
f5fde56af0
commit
6d70abd7d5
|
@ -7,6 +7,14 @@ import (
|
||||||
te "github.com/muesli/termenv"
|
te "github.com/muesli/termenv"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func hideCursor(w io.Writer) {
|
||||||
|
fmt.Fprintf(w, te.CSI+te.HideCursorSeq)
|
||||||
|
}
|
||||||
|
|
||||||
|
func showCursor(w io.Writer) {
|
||||||
|
fmt.Fprintf(w, te.CSI+te.ShowCursorSeq)
|
||||||
|
}
|
||||||
|
|
||||||
func clearLine(w io.Writer) {
|
func clearLine(w io.Writer) {
|
||||||
fmt.Fprintf(w, te.CSI+te.EraseLineSeq, 2)
|
fmt.Fprintf(w, te.CSI+te.EraseLineSeq, 2)
|
||||||
}
|
}
|
||||||
|
|
4
tea.go
4
tea.go
|
@ -124,11 +124,11 @@ func (p *Program) Start() error {
|
||||||
|
|
||||||
p.renderer = newRenderer(p.output, &p.mtx)
|
p.renderer = newRenderer(p.output, &p.mtx)
|
||||||
|
|
||||||
err := initTerminal()
|
err := initTerminal(p.output)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
defer restoreTerminal()
|
defer restoreTerminal(p.output)
|
||||||
|
|
||||||
// Initialize program
|
// Initialize program
|
||||||
model := p.initialModel
|
model := p.initialModel
|
||||||
|
|
11
tty.go
11
tty.go
|
@ -1,13 +1,14 @@
|
||||||
package tea
|
package tea
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"io"
|
||||||
|
|
||||||
"github.com/containerd/console"
|
"github.com/containerd/console"
|
||||||
"github.com/muesli/termenv"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var tty console.Console
|
var tty console.Console
|
||||||
|
|
||||||
func initTerminal() error {
|
func initTerminal(w io.Writer) error {
|
||||||
tty = console.Current()
|
tty = console.Current()
|
||||||
err := tty.SetRaw()
|
err := tty.SetRaw()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -15,11 +16,11 @@ func initTerminal() error {
|
||||||
}
|
}
|
||||||
|
|
||||||
enableAnsiColors()
|
enableAnsiColors()
|
||||||
termenv.HideCursor()
|
hideCursor(w)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func restoreTerminal() error {
|
func restoreTerminal(w io.Writer) error {
|
||||||
termenv.ShowCursor()
|
showCursor(w)
|
||||||
return tty.Reset()
|
return tty.Reset()
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue