Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 3942 → Rev 3943

/trunk/uspace/srv/kbd/ctl/pc.c
135,6 → 135,8
[0x57] = KC_F11,
[0x58] = KC_F12,
 
[0x46] = KC_SCROLL_LOCK,
 
[0x1c] = KC_ENTER,
 
[0x45] = KC_NUM_LOCK,
159,7 → 161,9
[0x1d] = KC_RSHIFT,
 
[0x37] = KC_PRTSCR,
 
[0x52] = KC_INSERT,
[0x47] = KC_HOME,
[0x49] = KC_PAGE_UP,
 
[0x53] = KC_DELETE,
/trunk/uspace/srv/kbd/generic/kbd.c
63,6 → 63,9
/** Currently active modifiers. */
static unsigned mods = KM_NUM_LOCK;
 
/** Currently pressed lock keys. We track these to tackle autorepeat. */
static unsigned lock_keys;
 
void kbd_push_scancode(int scancode)
{
printf("scancode: 0x%x\n", scancode);
98,8 → 101,19
default: mod_mask = 0; break;
}
 
if (mod_mask != 0 && type == KE_PRESS)
mods = mods ^ mod_mask;
if (mod_mask != 0) {
if (type == KE_PRESS) {
/*
* Only change lock state on transition from released
* to pressed. This prevents autorepeat from messing
* up the lock state.
*/
mods = mods ^ (mod_mask & ~lock_keys);
lock_keys = lock_keys | mod_mask;
} else {
lock_keys = lock_keys & ~mod_mask;
}
}
 
printf("type: %d\n", type);
printf("mods: 0x%x\n", mods);