fix terminal freezing
parent
c9aec29b0c
commit
fd79bceb79
|
@ -2,6 +2,7 @@ package app
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"os/exec"
|
||||
"os/user"
|
||||
|
||||
|
@ -10,7 +11,9 @@ import (
|
|||
"git.tilde.town/nbsp/welcome/ui"
|
||||
)
|
||||
|
||||
type Editor struct{}
|
||||
type Editor struct {
|
||||
loaded bool
|
||||
}
|
||||
|
||||
func (view *Editor) Draw(state *ui.State) {
|
||||
win := state.Window()
|
||||
|
@ -52,11 +55,16 @@ like before, when you're done, type `},
|
|||
}
|
||||
|
||||
func (view *Editor) Event(state *ui.State, event vaxis.Event) (processed bool) {
|
||||
win := state.Window()
|
||||
if view.loaded {
|
||||
return
|
||||
}
|
||||
view.loaded = true
|
||||
|
||||
win := state.Window().New(0, 16, 80, 80)
|
||||
view.Draw(state)
|
||||
|
||||
vt := term.New()
|
||||
vt.Draw(win.New(0, 16, 80, 80))
|
||||
vt.TERM = os.Getenv("TERM")
|
||||
vt.Attach(state.PostEvent())
|
||||
vt.Focus()
|
||||
err := vt.Start(exec.Command("bash", "-l"))
|
||||
|
@ -76,7 +84,7 @@ func (view *Editor) Event(state *ui.State, event vaxis.Event) (processed bool) {
|
|||
return
|
||||
case vaxis.Redraw:
|
||||
view.Draw(state)
|
||||
vt.Draw(win.New(0, 16, 80, 80))
|
||||
vt.Draw(win)
|
||||
state.Render()
|
||||
continue
|
||||
}
|
||||
|
|
12
app/shell.go
12
app/shell.go
|
@ -1,6 +1,7 @@
|
|||
package app
|
||||
|
||||
import (
|
||||
"os"
|
||||
"os/exec"
|
||||
|
||||
"git.sr.ht/~rockorager/vaxis"
|
||||
|
@ -8,7 +9,9 @@ import (
|
|||
"git.tilde.town/nbsp/welcome/ui"
|
||||
)
|
||||
|
||||
type Shell struct{}
|
||||
type Shell struct {
|
||||
loaded bool
|
||||
}
|
||||
|
||||
func (view *Shell) Draw(state *ui.State) {
|
||||
win := state.Window()
|
||||
|
@ -43,11 +46,16 @@ you're ready.`},
|
|||
}
|
||||
|
||||
func (view *Shell) Event(state *ui.State, event vaxis.Event) (processed bool) {
|
||||
if view.loaded {
|
||||
return
|
||||
}
|
||||
view.loaded = true
|
||||
|
||||
win := state.Window().New(0, 16, 80, 80)
|
||||
view.Draw(state)
|
||||
|
||||
vt := term.New()
|
||||
vt.Draw(win)
|
||||
vt.TERM = os.Getenv("TERM")
|
||||
vt.Attach(state.PostEvent())
|
||||
vt.Focus()
|
||||
err := vt.Start(exec.Command("bash", "-l"))
|
||||
|
|
Loading…
Reference in New Issue