aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPo Lu2022-04-12 21:15:05 +0800
committerPo Lu2022-04-12 21:30:25 +0800
commit1b20c4eaa2e5befc4c500637332c3bc1b719cf47 (patch)
tree10199b40811fe923609ee812712c818863754d97
parent4a108df0ebb68e9ea1073d53c14d8f897e43f21c (diff)
downloademacs-1b20c4eaa2e5befc4c500637332c3bc1b719cf47.tar.gz
emacs-1b20c4eaa2e5befc4c500637332c3bc1b719cf47.zip
Fix detection of Meta key in some cases
* src/xterm.c (x_find_modifier_meanings): Set found_meta_p correctly.
-rw-r--r--src/xterm.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/xterm.c b/src/xterm.c
index 12707fc9a20..e922ab8fbb2 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -9883,6 +9883,7 @@ x_find_modifier_meanings (struct x_display_info *dpyinfo)
9883#ifdef HAVE_XKB 9883#ifdef HAVE_XKB
9884 int i; 9884 int i;
9885 int found_meta_p = false; 9885 int found_meta_p = false;
9886 uint vmodmask;
9886#endif 9887#endif
9887 9888
9888 dpyinfo->meta_mod_mask = 0; 9889 dpyinfo->meta_mod_mask = 0;
@@ -9897,12 +9898,14 @@ x_find_modifier_meanings (struct x_display_info *dpyinfo)
9897 { 9898 {
9898 for (i = 0; i < XkbNumVirtualMods; i++) 9899 for (i = 0; i < XkbNumVirtualMods; i++)
9899 { 9900 {
9900 uint vmodmask = dpyinfo->xkb_desc->server->vmods[i]; 9901 vmodmask = dpyinfo->xkb_desc->server->vmods[i];
9901 9902
9902 if (dpyinfo->xkb_desc->names->vmods[i] == dpyinfo->Xatom_Meta) 9903 if (dpyinfo->xkb_desc->names->vmods[i] == dpyinfo->Xatom_Meta)
9903 { 9904 {
9904 dpyinfo->meta_mod_mask |= vmodmask; 9905 dpyinfo->meta_mod_mask |= vmodmask;
9905 found_meta_p = vmodmask; 9906
9907 if (vmodmask)
9908 found_meta_p = true;
9906 } 9909 }
9907 else if (dpyinfo->xkb_desc->names->vmods[i] == dpyinfo->Xatom_Alt) 9910 else if (dpyinfo->xkb_desc->names->vmods[i] == dpyinfo->Xatom_Alt)
9908 dpyinfo->alt_mod_mask |= vmodmask; 9911 dpyinfo->alt_mod_mask |= vmodmask;