summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/ui/textinput.go2
-rw-r--r--widgets/exline.go10
2 files changed, 4 insertions, 8 deletions
diff --git a/lib/ui/textinput.go b/lib/ui/textinput.go
index aff520b..542a1f8 100644
--- a/lib/ui/textinput.go
+++ b/lib/ui/textinput.go
@@ -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()
}
}
diff --git a/widgets/exline.go b/widgets/exline.go
index c841802..a5b896f 100644
--- a/widgets/exline.go
+++ b/widgets/exline.go
@@ -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)