eekboard: Reset modifiers just after normal key press.
This commit is contained in:
		@ -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);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user