terminal: check for context before calling it's methods
The terminal widget internally uses several context methods. Check that context is not nil before calling any method to prevent panics. Signed-off-by: Tim Culverhouse <tim@timculverhouse.com> Acked-by: Robin Jarry <robin@jarry.cc>
This commit is contained in:
parent
cf319129de
commit
c7df28d632
1 changed files with 7 additions and 3 deletions
|
@ -65,7 +65,9 @@ func (term *Terminal) Close(err error) {
|
|||
if !term.closed && term.OnClose != nil {
|
||||
term.OnClose(err)
|
||||
}
|
||||
term.ctx.HideCursor()
|
||||
if term.ctx != nil {
|
||||
term.ctx.HideCursor()
|
||||
}
|
||||
term.closed = true
|
||||
}
|
||||
|
||||
|
@ -126,7 +128,7 @@ func (term *Terminal) Draw(ctx *ui.Context) {
|
|||
|
||||
func (term *Terminal) draw() {
|
||||
term.vterm.Draw()
|
||||
if term.focus && !term.closed {
|
||||
if term.focus && !term.closed && term.ctx != nil {
|
||||
if !term.cursorShown {
|
||||
term.ctx.HideCursor()
|
||||
} else {
|
||||
|
@ -182,7 +184,9 @@ func (term *Terminal) HandleEvent(ev tcell.Event) bool {
|
|||
term.draw()
|
||||
// Perform a tcell screen.Show() to show our updates
|
||||
// immediately
|
||||
term.ctx.Show()
|
||||
if term.ctx != nil {
|
||||
term.ctx.Show()
|
||||
}
|
||||
term.invalidate()
|
||||
return true
|
||||
case *tcellterm.EventTitle:
|
||||
|
|
Loading…
Reference in a new issue