[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r110825: A (hopefully) better fix for
From: |
Eli Zaretskii |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r110825: A (hopefully) better fix for bug #1280. |
Date: |
Wed, 07 Nov 2012 23:12:25 +0200 |
User-agent: |
Bazaar (2.5.0) |
------------------------------------------------------------
revno: 110825
fixes bug: http://debbugs.gnu.org/1280
committer: Eli Zaretskii <address@hidden>
branch nick: trunk
timestamp: Wed 2012-11-07 23:12:25 +0200
message:
A (hopefully) better fix for bug #1280.
src/w32fns.c (modifier_set): Don't report 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 17:33:14 +0000
+++ b/src/ChangeLog 2012-11-07 21:12:25 +0000
@@ -1,10 +1,9 @@
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)
+ * w32fns.c (modifier_set): Don't report 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)
(modifier_set): Do not omit checking the Num Lock key.
2012-11-07 Dmitry Antipov <address@hidden>
=== modified file 'src/w32fns.c'
--- a/src/w32fns.c 2012-11-07 17:33:14 +0000
+++ b/src/w32fns.c 2012-11-07 21:12:25 +0000
@@ -2085,8 +2085,28 @@
static int
modifier_set (int vkey)
{
- if (vkey == VK_CAPITAL || vkey == VK_SCROLL || vkey == VK_NUMLOCK)
- return (GetKeyState (vkey) & 0x1);
+ if (vkey == VK_CAPITAL)
+ {
+ if (NILP (Vw32_enable_caps_lock))
+ return 0;
+ else
+ return (GetKeyState (vkey) & 0x1);
+ }
+ if (vkey == VK_SCROLL)
+ {
+ if (NILP (Vw32_scroll_lock_modifier))
+ return 0;
+ else
+ return (GetKeyState (vkey) & 0x1);
+ }
+ if (vkey == VK_NUMLOCK)
+ {
+ if (NILP (Vw32_enable_num_lock))
+ return 0;
+ else
+ return (GetKeyState (vkey) & 0x1);
+ }
+
if (!modifiers_recorded)
return (GetKeyState (vkey) & 0x8000);
@@ -2974,21 +2994,12 @@
{
DWORD modifiers = construct_console_modifiers ();
- /* 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)))
+ 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. */
windows_translate = 1;
}
else if ((modifiers & (~SHIFT_PRESSED & ~CAPSLOCK_ON)) != 0)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r110825: A (hopefully) better fix for bug #1280.,
Eli Zaretskii <=