Refactor ctx stashing out of exline

This commit is contained in:
Drew DeVault 2019-05-11 13:20:29 -04:00
parent 8fa4583230
commit 72e4b5e2b2
2 changed files with 4 additions and 8 deletions

View file

@ -57,6 +57,8 @@ func (ti *TextInput) Focus(focus bool) {
if focus && ti.ctx != nil {
cells := runewidth.StringWidth(string(ti.text[:ti.index]))
ti.ctx.SetCursor(cells+1, 0)
} else if !focus && ti.ctx != nil {
ti.ctx.HideCursor()
}
}

View file

@ -10,7 +10,6 @@ type ExLine struct {
ui.Invalidatable
cancel func()
commit func(cmd string)
ctx *ui.Context
input *ui.TextInput
}
@ -32,7 +31,6 @@ func (ex *ExLine) Invalidate() {
}
func (ex *ExLine) Draw(ctx *ui.Context) {
ex.ctx = ctx // gross
ex.input.Draw(ctx)
}
@ -45,14 +43,10 @@ func (ex *ExLine) Event(event tcell.Event) bool {
case *tcell.EventKey:
switch event.Key() {
case tcell.KeyEnter:
if ex.ctx != nil {
ex.ctx.HideCursor()
}
ex.input.Focus(false)
ex.commit(ex.input.String())
case tcell.KeyEsc, tcell.KeyCtrlC:
if ex.ctx != nil {
ex.ctx.HideCursor()
}
ex.input.Focus(false)
ex.cancel()
default:
return ex.input.Event(event)