diff --git a/kevent.go b/kevent.go index d96f088a1b432217748f4a4fc8808e247b3b2f23..377a5f75e5ea3e722cba3278211869c4de53550e 100644 --- a/kevent.go +++ b/kevent.go @@ -121,6 +121,11 @@ case termbox.KeyCtrlK: e.triggerHover() } + // Prevent key event fallthrough. + if ev.Key != 0 { + return + } + switch ev.Ch { case 'i': e.saveState() @@ -640,6 +645,11 @@ case termbox.KeyArrowDown: e.moveCursor(0, 1) } + // Prevent key event fallthrough. + if ev.Key != 0 { + return + } + switch ev.Ch { case Config.LeaderKey: e.pendingKey = Config.LeaderKey @@ -738,6 +748,11 @@ case termbox.KeyArrowUp: e.moveCursor(0, -1) case termbox.KeyArrowDown: e.moveCursor(0, 1) + } + + // Prevent key event fallthrough. + if ev.Key != 0 { + return } switch ev.Ch { @@ -839,6 +854,11 @@ case termbox.KeyArrowDown: e.moveCursor(0, 1) } + // Prevent key event fallthrough. + if ev.Key != 0 { + return + } + switch ev.Ch { case Config.LeaderKey: e.pendingKey = Config.LeaderKey @@ -944,6 +964,11 @@ // Default Enter to "no/cancel" to avoid accidental execution. e.mode = ModeNormal e.pendingConfirm = nil e.message = "Cancelled" + return + } + + // Prevent key event fallthrough. + if ev.Key != 0 { return }