Mercurial > vim
diff src/libvterm/src/keyboard.c @ 18279:e8d1f3209dcd v8.1.2134
patch 8.1.2134: modifier keys are not always recognized
Commit: https://github.com/vim/vim/commit/6a0299d8f4c7a64c64d60a6bb39cfe6eaf892247
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Oct 10 21:14:03 2019 +0200
patch 8.1.2134: modifier keys are not always recognized
Problem: Modifier keys are not always recognized.
Solution: Handle key codes generated by xterm with modifyOtherKeys set.
Add this to libvterm so we can debug it.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 10 Oct 2019 21:15:04 +0200 |
parents | 811a12a78164 |
children | ffadba5f898c |
line wrap: on
line diff
--- a/src/libvterm/src/keyboard.c +++ b/src/libvterm/src/keyboard.c @@ -4,10 +4,21 @@ #include "utf8.h" +int vterm_is_modify_other_keys(VTerm *vt) +{ + return vt->state->mode.modify_other_keys; +} + + void vterm_keyboard_unichar(VTerm *vt, uint32_t c, VTermModifier mod) { int needs_CSIu; + if (vt->state->mode.modify_other_keys && mod != 0) { + vterm_push_output_sprintf_ctrl(vt, C1_CSI, "27;%d;%d~", mod+1, c); + return; + } + // The shift modifier is never important for Unicode characters // apart from Space if(c != ' ')