emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r110822: Fix bug #1280 with non-ASCII


From: Eli Zaretskii
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r110822: Fix bug #1280 with non-ASCII keyboard input on MS-Windows.
Date: Wed, 07 Nov 2012 18:44:48 +0200
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 110822
fixes bug: http://debbugs.gnu.org/1280
committer: Eli Zaretskii <address@hidden>
branch nick: trunk
timestamp: Wed 2012-11-07 18:44:48 +0200
message:
  Fix bug #1280 with non-ASCII keyboard input on MS-Windows.
  
   src/w32fns.c (w32_wnd_proc): Don't directly handle key chords
   including modifiers from toggle key, such as Scroll Lock, if the
   respective keys are treated as function keys, not as modifiers.
   This avoids destroying non-ASCII keyboard input when Scroll Lock
   is toggled ON.
modified:
  src/ChangeLog
  src/w32fns.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2012-11-07 05:23:20 +0000
+++ b/src/ChangeLog     2012-11-07 16:44:48 +0000
@@ -1,3 +1,11 @@
+2012-11-07  Eli Zaretskii  <address@hidden>
+
+       * w32fns.c (w32_wnd_proc): Don't directly handle key chords
+       including modifiers from toggle key, such as Scroll Lock, if the
+       respective keys are treated as function keys, not as modifiers.
+       This avoids destroying non-ASCII keyboard input when Scroll Lock
+       is toggled ON.  (Bug#1280)
+
 2012-11-07  Dmitry Antipov  <address@hidden>
 
        * xfns.c (Fx_wm_set_size_hint): Use check_x_frame.  Adjust docstring.

=== modified file 'src/w32fns.c'
--- a/src/w32fns.c      2012-11-06 13:26:20 +0000
+++ b/src/w32fns.c      2012-11-07 16:44:48 +0000
@@ -2974,12 +2974,21 @@
            {
              DWORD modifiers = construct_console_modifiers ();
 
-             if (!NILP (Vw32_recognize_altgr)
-                 && modifier_set (VK_LCONTROL) && modifier_set (VK_RMENU))
+             /* Always let TranslateMessage handle AltGr key chords;
+                for some reason, ToAscii doesn't always process AltGr
+                chords correctly.  */
+             if ((!NILP (Vw32_recognize_altgr)
+                  && modifier_set (VK_LCONTROL) && modifier_set (VK_RMENU))
+                 /* If a toggle key is used as a function key, let
+                    TranslateMessage handle keys pressed while the
+                    toggled key is ON.  This avoids munging non-ASCII
+                    keys, like interpreting them as ASCII keys below,
+                    when, e.g., Scroll Lock is toggled ON.  */
+                 || (NILP (Vw32_scroll_lock_modifier)
+                     && modifier_set (VK_SCROLL))
+                 || (NILP (Vw32_enable_num_lock) && modifier_set (VK_NUMLOCK))
+                 || (NILP (Vw32_enable_caps_lock) && modifier_set 
(VK_CAPITAL)))
                {
-                 /* Always let TranslateMessage handle AltGr key chords;
-                    for some reason, ToAscii doesn't always process AltGr
-                    chords correctly.  */
                  windows_translate = 1;
                }
              else if ((modifiers & (~SHIFT_PRESSED & ~CAPSLOCK_ON)) != 0)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]