--- wskbd.c.original 2006-02-10 11:14:49.860222250 +0000 +++ wskbd.c 2006-02-10 14:27:18.557970750 +0000 @@ -1573,6 +1573,18 @@ #endif } +/* + * The Zaurus in particular has Caps-Lock on a Mode_switch modifier, the above switch + * statement only checks element 0 of a key translation table so will miss the Zaurus key + * mappings, we now check specifically for MOD_MODESHIFT and check for CAPSLOCK + * events inside the shifted state of the keypress, this is left as generic to facilitate the + * functionality on other devices. + */ + + if (id->t_modifiers & MOD_MODESHIFT) /* checks Fn on Zaurus */ + if (kp->group2[0]==KS_Caps_Lock) + update_modifier(id, type, 1, MOD_CAPSLOCK); + #if NWSDISPLAY > 0 if (sc != NULL) { if (sc->sc_repeating) {