Refactor ctx stashing out of exline
This commit is contained in:
parent
8fa4583230
commit
72e4b5e2b2
|
@ -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()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue