diff options
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/wscons/wskbd.c | 12 | ||||
-rw-r--r-- | sys/dev/wscons/wsksymdef.h | 3 |
2 files changed, 11 insertions, 4 deletions
diff --git a/sys/dev/wscons/wskbd.c b/sys/dev/wscons/wskbd.c index 8ae0c5ae1bc..dbd5b902dee 100644 --- a/sys/dev/wscons/wskbd.c +++ b/sys/dev/wscons/wskbd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: wskbd.c,v 1.25 2001/09/26 01:21:37 jcs Exp $ */ +/* $OpenBSD: wskbd.c,v 1.26 2001/09/30 05:49:58 mickey Exp $ */ /* $NetBSD: wskbd.c,v 1.38 2000/03/23 07:01:47 thorpej Exp $ */ /* @@ -197,6 +197,7 @@ struct wskbd_softc { #define MOD_COMMAND (1 << 12) #define MOD_COMMAND1 (1 << 13) #define MOD_COMMAND2 (1 << 14) +#define MOD_MODELOCK (1 << 15) #define MOD_ANYSHIFT (MOD_SHIFT_L | MOD_SHIFT_R | MOD_SHIFTLOCK) #define MOD_ANYCONTROL (MOD_CONTROL_L | MOD_CONTROL_R) @@ -1464,7 +1465,7 @@ wskbd_translate(id, type, value) id->t_modifiers &= ~(MOD_SHIFT_L | MOD_SHIFT_R | MOD_CONTROL_L | MOD_CONTROL_R | MOD_META_L | MOD_META_R - | MOD_MODESHIFT + | MOD_MODESHIFT | MOD_MODELOCK | MOD_COMMAND | MOD_COMMAND1 | MOD_COMMAND2); update_leds(id); return (0); @@ -1527,6 +1528,10 @@ wskbd_translate(id, type, value) update_modifier(id, type, 0, MOD_MODESHIFT); break; + case KS_Mode_Lock: + update_modifier(id, type, 1, MOD_MODELOCK); + break; + case KS_Num_Lock: update_modifier(id, type, 1, MOD_NUMLOCK); break; @@ -1564,7 +1569,8 @@ wskbd_translate(id, type, value) } /* Get the keysym */ - if (id->t_modifiers & MOD_MODESHIFT) + if (id->t_modifiers & (MOD_MODESHIFT|MOD_MODELOCK) && + !MOD_ONESET(id, MOD_ANYCONTROL)) group = & kp->group2[0]; else group = & kp->group1[0]; diff --git a/sys/dev/wscons/wsksymdef.h b/sys/dev/wscons/wsksymdef.h index b1937b2cd40..8d34bef5c29 100644 --- a/sys/dev/wscons/wsksymdef.h +++ b/sys/dev/wscons/wsksymdef.h @@ -1,4 +1,4 @@ -/* $OpenBSD: wsksymdef.h,v 1.14 2001/09/04 21:28:54 mickey Exp $ */ +/* $OpenBSD: wsksymdef.h,v 1.15 2001/09/30 05:49:58 mickey Exp $ */ /* $NetBSD: wsksymdef.h,v 1.34.4.1 2000/07/07 09:49:54 hannken Exp $ */ /*- @@ -381,6 +381,7 @@ #define KS_Henkan_Mode 0xf114 /* Start/Stop Conversion */ #define KS_Henkan 0xf115 /* Alias for Henkan_Mode */ #define KS_Muhenkan 0xf116 /* Cancel Conversion */ +#define KS_Mode_Lock 0xf117 /* * Group 2 (keypad) character in low byte |