emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/trunk r110838: More fixes for bug #12806.


From: Eli Zaretskii
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r110838: More fixes for bug #12806.
Date: Thu, 08 Nov 2012 19:02:56 +0200
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 110838
fixes bug: http://debbugs.gnu.org/12806
committer: Eli Zaretskii <address@hidden>
branch nick: trunk
timestamp: Thu 2012-11-08 19:02:56 +0200
message:
  More fixes for bug #12806.
  
   src/w32fns.c (modifier_set): Fix handling of Scroll Lock when the
   value of w32-scroll-lock-modifier is neither nil nor one of the
   known key modifiers.
modified:
  src/ChangeLog
  src/w32fns.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2012-11-08 14:10:28 +0000
+++ b/src/ChangeLog     2012-11-08 17:02:56 +0000
@@ -1,3 +1,9 @@
+2012-11-08  Eli Zaretskii  <address@hidden>
+
+       * w32fns.c (modifier_set): Fix handling of Scroll Lock when the
+       value of w32-scroll-lock-modifier is neither nil nor one of the
+       known key modifiers.  (Bug#12806)
+
 2012-11-08  Dmitry Antipov  <address@hidden>
 
        Shrink struct vectorlike_header to the only size field.

=== modified file 'src/w32fns.c'
--- a/src/w32fns.c      2012-11-07 21:48:18 +0000
+++ b/src/w32fns.c      2012-11-08 17:02:56 +0000
@@ -2085,6 +2085,12 @@
 static int
 modifier_set (int vkey)
 {
+  /* Warning: The fact that VK_NUMLOCK is not treated as the other 2
+     toggle keys is not an omission!  If you want to add it, you will
+     have to make changes in the default sub-case of the WM_KEYDOWN
+     switch, because if the NUMLOCK modifier is set, the code there
+     will directly convert any key that looks like an ASCII letter,
+     and also downcase those that look like upper-case ASCII.  */
   if (vkey == VK_CAPITAL)
     {
       if (NILP (Vw32_enable_caps_lock))
@@ -2094,7 +2100,15 @@
     }
   if (vkey == VK_SCROLL)
     {
-      if (NILP (Vw32_scroll_lock_modifier))
+      if (NILP (Vw32_scroll_lock_modifier)
+         /* w32-scroll-lock-modifier can be any non-nil value that is
+            not one of the modifiers, in which case it shall be ignored.  */
+         || !(   EQ (Vw32_scroll_lock_modifier, Qhyper)
+              || EQ (Vw32_scroll_lock_modifier, Qsuper)
+              || EQ (Vw32_scroll_lock_modifier, Qmeta)
+              || EQ (Vw32_scroll_lock_modifier, Qalt)
+              || EQ (Vw32_scroll_lock_modifier, Qcontrol)
+              || EQ (Vw32_scroll_lock_modifier, Qshift)))
        return 0;
       else
        return (GetKeyState (vkey) & 0x1);


reply via email to

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