Skip to content

Commit 25c7fa5

Browse files
committed
De-duplicate code for KeyEvent creation
1 parent a85696d commit 25c7fa5

File tree

4 files changed

+15
-29
lines changed

4 files changed

+15
-29
lines changed

internal/action/bufpane.go

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -469,13 +469,7 @@ func (h *BufPane) HandleEvent(event tcell.Event) {
469469
h.paste(e.Text())
470470
h.Relocate()
471471
case *tcell.EventKey:
472-
ke := KeyEvent{
473-
code: e.Key(),
474-
mod: metaToAlt(e.Modifiers()),
475-
}
476-
if e.Key() == tcell.KeyRune {
477-
ke.r = e.Rune()
478-
}
472+
ke := keyEvent(e)
479473

480474
done := h.DoKeyEvent(ke)
481475
if !done && e.Key() == tcell.KeyRune {

internal/action/events.go

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,17 @@ func metaToAlt(mod tcell.ModMask) tcell.ModMask {
4444
return mod
4545
}
4646

47+
func keyEvent(e *tcell.EventKey) KeyEvent {
48+
ke := KeyEvent{
49+
code: e.Key(),
50+
mod: metaToAlt(e.Modifiers()),
51+
}
52+
if e.Key() == tcell.KeyRune {
53+
ke.r = e.Rune()
54+
}
55+
return ke
56+
}
57+
4758
func (k KeyEvent) Name() string {
4859
if k.any {
4960
return "<any>"
@@ -155,14 +166,7 @@ func (m MouseEvent) Name() string {
155166
func ConstructEvent(event tcell.Event) (Event, error) {
156167
switch e := event.(type) {
157168
case *tcell.EventKey:
158-
ke := KeyEvent{
159-
code: e.Key(),
160-
mod: metaToAlt(e.Modifiers()),
161-
}
162-
if e.Key() == tcell.KeyRune {
163-
ke.r = e.Rune()
164-
}
165-
return ke, nil
169+
return keyEvent(e), nil
166170
case *tcell.EventRaw:
167171
return RawEvent{
168172
esc: e.EscSeq(),

internal/action/infopane.go

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -86,13 +86,7 @@ func (h *InfoPane) HandleEvent(event tcell.Event) {
8686
case *tcell.EventResize:
8787
// TODO
8888
case *tcell.EventKey:
89-
ke := KeyEvent{
90-
code: e.Key(),
91-
mod: metaToAlt(e.Modifiers()),
92-
}
93-
if e.Key() == tcell.KeyRune {
94-
ke.r = e.Rune()
95-
}
89+
ke := keyEvent(e)
9690

9791
done := h.DoKeyEvent(ke)
9892
hasYN := h.HasYN

internal/action/termpane.go

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -125,13 +125,7 @@ func (t *TermPane) Unsplit() {
125125
// copy-paste
126126
func (t *TermPane) HandleEvent(event tcell.Event) {
127127
if e, ok := event.(*tcell.EventKey); ok {
128-
ke := KeyEvent{
129-
code: e.Key(),
130-
mod: metaToAlt(e.Modifiers()),
131-
}
132-
if e.Key() == tcell.KeyRune {
133-
ke.r = e.Rune()
134-
}
128+
ke := keyEvent(e)
135129
action, more := TermBindings.NextEvent(ke, nil)
136130

137131
if !more {

0 commit comments

Comments
 (0)