changeset 15459:76ff60cd2b8d

(Vwin32_alt_is_meta): New variable. (win32_get_modifiers): Map Alt to alt_modifier if required. (syms_of_win32fns): DEFVAR new variable.
author Richard M. Stallman <rms@gnu.org>
date Wed, 19 Jun 1996 22:17:35 +0000
parents d4dceb1eaf56
children be07c4433554
files src/w32fns.c
diffstat 1 files changed, 11 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/w32fns.c	Wed Jun 19 22:14:31 1996 +0000
+++ b/src/w32fns.c	Wed Jun 19 22:17:35 1996 +0000
@@ -49,6 +49,10 @@
 /* Non nil if alt key presses are passed on to Windows.  */
 Lisp_Object Vwin32_pass_alt_to_system;
 
+/* Non nil if alt key is translated to meta_modifier, nil if it is translated
+   to alt_modifier.  */
+Lisp_Object Vwin32_alt_is_meta;
+
 /* Non nil if left window, right window, and application key events
    are passed on to Windows.  */
 Lisp_Object Vwin32_pass_optional_keys_to_system;
@@ -2650,7 +2654,8 @@
 {
   return (((GetKeyState (VK_SHIFT)&0x8000)   ? shift_modifier  : 0) |
 	  ((GetKeyState (VK_CONTROL)&0x8000) ? ctrl_modifier   : 0) |
-	  ((GetKeyState (VK_MENU)&0x8000)    ? meta_modifier   : 0));
+          ((GetKeyState (VK_MENU)&0x8000)    ? 
+	   ((NILP (Vwin32_alt_is_meta)) ? alt_modifier : meta_modifier) : 0));
 }
 
 void 
@@ -5002,6 +5007,11 @@
 open the System menu.  When nil, Emacs silently swallows alt key events.");
   Vwin32_pass_alt_to_system = Qnil;
 
+  DEFVAR_LISP ("win32-alt-is-meta", &Vwin32_alt_is_meta,
+	       "Non-nil if the alt key is to be considered the same as the meta key.\n\
+When nil, Emacs will translate the alt key to the Alt modifier, and not Meta.");
+  Vwin32_alt_is_meta = Qt;
+
   DEFVAR_LISP ("win32-pass-optional-keys-to-system", 
 	       &Vwin32_pass_optional_keys_to_system,
 	       "Non-nil if the 'optional' keys (left window, right window,\n\