Replace meta with alt automatically, update tcell

This commit is contained in:
Zachary Yedidia
2020-09-05 21:59:19 -04:00
parent 11104fd093
commit 96601a915d
6 changed files with 20 additions and 9 deletions

View File

@@ -345,7 +345,7 @@ func (h *BufPane) HandleEvent(event tcell.Event) {
case *tcell.EventKey:
ke := KeyEvent{
code: e.Key(),
mod: e.Modifiers(),
mod: metaToAlt(e.Modifiers()),
r: e.Rune(),
}
@@ -395,7 +395,7 @@ func (h *BufPane) HandleEvent(event tcell.Event) {
if !cancel {
me := MouseEvent{
btn: e.Buttons(),
mod: e.Modifiers(),
mod: metaToAlt(e.Modifiers()),
}
h.DoMouseEvent(me, e)
}

View File

@@ -36,6 +36,14 @@ type KeyEvent struct {
any bool
}
func metaToAlt(mod tcell.ModMask) tcell.ModMask {
if mod&tcell.ModMeta != 0 {
mod &= ^tcell.ModMeta
mod |= tcell.ModAlt
}
return mod
}
func (k KeyEvent) Name() string {
if k.any {
return "<any>"
@@ -132,7 +140,7 @@ func ConstructEvent(event tcell.Event) (Event, error) {
case *tcell.EventKey:
return KeyEvent{
code: e.Key(),
mod: e.Modifiers(),
mod: metaToAlt(e.Modifiers()),
r: e.Rune(),
}, nil
case *tcell.EventRaw:
@@ -142,7 +150,7 @@ func ConstructEvent(event tcell.Event) (Event, error) {
case *tcell.EventMouse:
return MouseEvent{
btn: e.Buttons(),
mod: e.Modifiers(),
mod: metaToAlt(e.Modifiers()),
}, nil
}
return nil, errors.New("No micro event equivalent")

View File

@@ -83,7 +83,7 @@ func (h *InfoPane) HandleEvent(event tcell.Event) {
case *tcell.EventKey:
ke := KeyEvent{
code: e.Key(),
mod: e.Modifiers(),
mod: metaToAlt(e.Modifiers()),
r: e.Rune(),
}

View File

@@ -120,7 +120,7 @@ func (t *TermPane) HandleEvent(event tcell.Event) {
if e, ok := event.(*tcell.EventKey); ok {
ke := KeyEvent{
code: e.Key(),
mod: e.Modifiers(),
mod: metaToAlt(e.Modifiers()),
r: e.Rune(),
}
action, more := TermBindings.NextEvent(ke, nil)