aboutsummaryrefslogtreecommitdiff
path: root/vendor/maunium.net/go/tview/modal.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/maunium.net/go/tview/modal.go')
-rw-r--r--vendor/maunium.net/go/tview/modal.go15
1 files changed, 15 insertions, 0 deletions
diff --git a/vendor/maunium.net/go/tview/modal.go b/vendor/maunium.net/go/tview/modal.go
index f53a265..f5e92f1 100644
--- a/vendor/maunium.net/go/tview/modal.go
+++ b/vendor/maunium.net/go/tview/modal.go
@@ -40,6 +40,11 @@ func NewModal() *Modal {
SetButtonBackgroundColor(Styles.PrimitiveBackgroundColor).
SetButtonTextColor(Styles.PrimaryTextColor)
m.form.SetBackgroundColor(Styles.ContrastBackgroundColor).SetBorderPadding(0, 0, 0, 0)
+ m.form.SetCancelFunc(func() {
+ if m.done != nil {
+ m.done(-1, "")
+ }
+ })
m.frame = NewFrame(m.form).SetBorders(0, 0, 1, 0, 0, 0)
m.frame.SetBorder(true).
SetBackgroundColor(Styles.ContrastBackgroundColor).
@@ -81,6 +86,16 @@ func (m *Modal) AddButtons(labels []string) *Modal {
m.done(i, l)
}
})
+ button := m.form.GetButton(m.form.GetButtonCount() - 1)
+ button.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey {
+ switch event.Key() {
+ case tcell.KeyDown, tcell.KeyRight:
+ return tcell.NewEventKey(tcell.KeyTab, 0, tcell.ModNone)
+ case tcell.KeyUp, tcell.KeyLeft:
+ return tcell.NewEventKey(tcell.KeyBacktab, 0, tcell.ModNone)
+ }
+ return event
+ })
}(index, label)
}
return m