eekboard: Reset modifiers just after normal key press.

This commit is contained in:
Daiki Ueno
2010-12-06 14:41:41 +09:00
parent 384d43bb80
commit c7c6d06907

View File

@ -426,7 +426,7 @@ on_key_pressed (EekKeyboard *keyboard,
switch (keysym) { switch (keysym) {
case XK_Shift_L: case XK_Shift_L:
case XK_Shift_R: case XK_Shift_R:
eekboard->modifiers ^= ShiftMask; eekboard->modifiers |= ShiftMask;
eek_keyboard_get_keysym_index (keyboard, &group, &level); eek_keyboard_get_keysym_index (keyboard, &group, &level);
eek_keyboard_set_keysym_index (keyboard, group, eek_keyboard_set_keysym_index (keyboard, group,
(eekboard->modifiers & Mod5Mask) ? 2 : (eekboard->modifiers & Mod5Mask) ? 2 :
@ -434,7 +434,7 @@ on_key_pressed (EekKeyboard *keyboard,
0); 0);
break; break;
case XK_ISO_Level3_Shift: case XK_ISO_Level3_Shift:
eekboard->modifiers ^= Mod5Mask; eekboard->modifiers |= Mod5Mask;
eek_keyboard_get_keysym_index (keyboard, &group, &level); eek_keyboard_get_keysym_index (keyboard, &group, &level);
eek_keyboard_set_keysym_index (keyboard, group, eek_keyboard_set_keysym_index (keyboard, group,
(eekboard->modifiers & Mod5Mask) ? 2 : (eekboard->modifiers & Mod5Mask) ? 2 :
@ -443,14 +443,17 @@ on_key_pressed (EekKeyboard *keyboard,
break; break;
case XK_Control_L: case XK_Control_L:
case XK_Control_R: case XK_Control_R:
eekboard->modifiers ^= ControlMask; eekboard->modifiers |= ControlMask;
break; break;
case XK_Alt_L: case XK_Alt_L:
case XK_Alt_R: case XK_Alt_R:
eekboard->modifiers ^= Mod1Mask; eekboard->modifiers |= Mod1Mask;
break; break;
default: default:
fakekey_press_keysym (eekboard->fakekey, keysym, eekboard->modifiers); fakekey_press_keysym (eekboard->fakekey, keysym, eekboard->modifiers);
eekboard->modifiers = 0;
eek_keyboard_get_keysym_index (keyboard, &group, &level);
eek_keyboard_set_keysym_index (keyboard, group, 0);
} }
} }