diff options
author | Mateusz Czapliński <czapkofan@gmail.com> | 2018-03-11 14:56:28 +0100 |
---|---|---|
committer | Mateusz Czapliński <czapkofan@gmail.com> | 2018-03-11 14:56:28 +0100 |
commit | 57e5492d14a5a0086b5c382bc5cd88daf082426b (patch) | |
tree | ef59d1b4b55e1731f1e1fa0d2de21c0174aa3f64 | |
parent | 25f8ccb6c4d0da7d9f1fd741db6c0043c2162ead (diff) |
in Editor, ignore arrow keys with modifiers
-rw-r--r-- | up.go | 16 |
1 files changed, 10 insertions, 6 deletions
@@ -294,21 +294,25 @@ func (e *Editor) Draw(tui tcell.Screen, x, y int, setcursor bool) { } func (e *Editor) HandleKey(ev *tcell.EventKey) bool { - if ev.Key() == tcell.KeyRune { + if ev.Key() == tcell.KeyRune && ev.Modifiers()&(^tcell.ModShift) == 0 { e.insert(ev.Rune()) return true } - switch ev.Key() { - case tcell.KeyBackspace, tcell.KeyBackspace2: + type keymod struct { + tcell.Key + tcell.ModMask + } + switch (keymod{ev.Key(), ev.Modifiers()}) { + case keymod{tcell.KeyBackspace, 0}, keymod{tcell.KeyBackspace2, 0}: // See https://github.com/nsf/termbox-go/issues/145 e.delete(-1) - case tcell.KeyDelete: + case keymod{tcell.KeyDelete, 0}: e.delete(0) - case tcell.KeyLeft: + case keymod{tcell.KeyLeft, 0}: if e.cursor > 0 { e.cursor-- } - case tcell.KeyRight: + case keymod{tcell.KeyRight, 0}: if e.cursor < len(e.command) { e.cursor++ } |