diff options
author | Drew DeVault <sir@cmpwn.com> | 2019-05-11 13:20:29 -0400 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2019-05-11 13:20:29 -0400 |
commit | 72e4b5e2b2e0de50b8572f195f73ccdd8e9d9461 (patch) | |
tree | 4d20a22bf099f2a3e3d8bd294fa84c6900945784 | |
parent | 8fa458323058c8998408f88b80d07c687fccd521 (diff) |
Refactor ctx stashing out of exline
-rw-r--r-- | lib/ui/textinput.go | 2 | ||||
-rw-r--r-- | widgets/exline.go | 10 |
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) |