diff --git a/internal/views/helpers.go b/internal/views/helpers.go index 95cc96d7..7e9051ac 100644 --- a/internal/views/helpers.go +++ b/internal/views/helpers.go @@ -9,6 +9,7 @@ import ( "github.com/derailed/k9s/internal/config" res "github.com/derailed/k9s/internal/resource" + "github.com/gdamore/tcell" "golang.org/x/text/language" "golang.org/x/text/message" "k8s.io/apimachinery/pkg/api/resource" @@ -20,6 +21,15 @@ const ( minusSign = "↓" ) +// AsKey converts rune to keyboard key., +func asKey(evt *tcell.EventKey) tcell.Key { + key := tcell.Key(evt.Rune()) + if evt.Modifiers() == tcell.ModAlt { + key = tcell.Key(int16(evt.Rune()) * int16(evt.Modifiers())) + } + return key +} + // FwFQN returns a fully qualified ns/name:container id. func fwFQN(po, co string) string { return po + ":" + co diff --git a/internal/views/shell.go b/internal/views/shell.go index 060be509..40b3e557 100644 --- a/internal/views/shell.go +++ b/internal/views/shell.go @@ -53,10 +53,7 @@ func (s *shellView) keyboard(evt *tcell.EventKey) *tcell.EventKey { s.cmdBuff.add(evt.Rune()) return nil } - key = tcell.Key(evt.Rune()) - if evt.Modifiers() == tcell.ModAlt { - key = tcell.Key(int16(evt.Rune()) * int16(evt.Modifiers())) - } + key = asKey(evt) } if a, ok := s.actions[key]; ok { diff --git a/internal/views/table.go b/internal/views/table.go index 93de9999..9245515b 100644 --- a/internal/views/table.go +++ b/internal/views/table.go @@ -67,10 +67,7 @@ func (v *tableView) keyboard(evt *tcell.EventKey) *tcell.EventKey { v.selectFirstRow() return nil } - key = tcell.Key(evt.Rune()) - if evt.Modifiers() == tcell.ModAlt { - key = tcell.Key(int16(evt.Rune()) * int16(evt.Modifiers())) - } + key = asKey(evt) } if a, ok := v.actions[key]; ok {