[Bug #2074] AltGr+key not working in Linux Console (Spanish keyb)
Pavel Roskin
proski at gnu.org
Fri Dec 27 14:52:31 UTC 2002
Hi, David!
Let's see how replying to nobody at savannah.gnu.org works.
> Summary: AltGr+key not working in Linux Console (Spanish keyb)
>
> Original Submission: In the Spanish keyboard I have an AltGr key which
> is used to form some esential characters:
>
> AltGr+╨=\
> +1=|
> +2=@
> +3=#
Try this patch:
==========================
--- key.c
+++ key.c
@@ -465,9 +465,17 @@ correct_key_code (int code)
{
unsigned int c = code & ~KEY_M_MASK; /* code without modifier */
unsigned int mod = code & KEY_M_MASK; /* modifier */
+ unsigned int os_mod; /* modifier from the OS or X11 */
/* Add key modifiers directly from X11 or OS */
- mod |= get_modifier ();
+ os_mod = get_modifier ();
+
+ /* Remove modifier information from ordinary characters */
+ if (c >= 32 && c < 256) {
+ os_mod &= ~KEY_M_MASK;
+ }
+
+ mod |= os_mod;
/* This is needed if the newline is reported as carriage return */
if (c == '\r')
@@ -497,11 +505,6 @@ correct_key_code (int code)
mod |= KEY_M_CTRL;
}
- /* Remove Shift and Ctrl information from ordinary characters */
- if (c >= 32 && c < 256) {
- mod &= ~(KEY_M_SHIFT | KEY_M_CTRL);
- }
-
/* Convert Shift+Fn to F(n+10) */
if (c >= KEY_F (1) && c <= KEY_F (10) && (mod & KEY_M_SHIFT)) {
c += 10;
==========================
All modifiers on normal keys should be ignored unless the modifier comes
from the key table (as opposed to Linux ioctl and X11).
--
Regards,
Pavel Roskin
More information about the mc-devel
mailing list