diff options
author | Bram Moolenaar <Bram@vim.org> | 2023-02-11 16:15:50 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2023-02-11 16:15:50 +0000 |
commit | aab2ead008a66fe873091fa721b2d8d8f4083815 (patch) | |
tree | 846e1949282345eb0a3888b721188f8f2cb66c20 | |
parent | 9d9a20ee8799bafe9caac616fef11b7a26db6a8d (diff) | |
download | vim-git-aab2ead008a66fe873091fa721b2d8d8f4083815.tar.gz |
patch 9.0.1302: on a Belgian keyboard CTRL-] does not workv9.0.1302
Problem: On a Belgian keyboard CTRL-] does not work.
Solution: Translate CTRL-$ into CTRL-]. (closes #11831)
-rw-r--r-- | src/gui_x11.c | 4 | ||||
-rw-r--r-- | src/misc2.c | 9 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 12 insertions, 3 deletions
diff --git a/src/gui_x11.c b/src/gui_x11.c index 540f143e2..fc63658f8 100644 --- a/src/gui_x11.c +++ b/src/gui_x11.c @@ -936,11 +936,11 @@ gui_x11_key_hit_cb( } else { - len = mb_char2bytes(key, string); - // Some keys need adjustment when the Ctrl modifier is used. key = may_adjust_key_for_ctrl(modifiers, key); + len = mb_char2bytes(key, string); + // Remove the SHIFT modifier for keys where it's already included, // e.g., '(', '!' and '*'. modifiers = may_remove_shift_modifier(modifiers, key); diff --git a/src/misc2.c b/src/misc2.c index e3602ee4b..6133a5e93 100644 --- a/src/misc2.c +++ b/src/misc2.c @@ -1543,7 +1543,7 @@ find_special_key( int may_adjust_key_for_ctrl(int modifiers, int key) { - if (!(modifiers & MOD_MASK_CTRL)) + if ((modifiers & MOD_MASK_CTRL) == 0) return key; if (ASCII_ISALPHA(key)) @@ -1559,6 +1559,13 @@ may_adjust_key_for_ctrl(int modifiers, int key) return '^'; if (key == '-') return '_'; + + // On a Belgian keyboard AltGr $ is ']', on other keyboards '$' can only be + // obtained with Shift. Assume that '$' without shift implies a Belgian + // keyboard, where CTRL-$ means CTRL-]. + if (key == '$' && (modifiers & MOD_MASK_SHIFT) == 0) + return ']'; + return key; } diff --git a/src/version.c b/src/version.c index 524abf792..058c712eb 100644 --- a/src/version.c +++ b/src/version.c @@ -696,6 +696,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1302, +/**/ 1301, /**/ 1300, |