Fix modifier handling when sending keycode with XTest.
This commit is contained in:
10
src/client.c
10
src/client.c
@ -847,7 +847,7 @@ send_fake_key_event (EekboardClient *client,
|
|||||||
gboolean is_pressed)
|
gboolean is_pressed)
|
||||||
{
|
{
|
||||||
EekSymbol *symbol;
|
EekSymbol *symbol;
|
||||||
EekModifierType modifiers;
|
EekModifierType keyboard_modifiers, modifiers;
|
||||||
guint xkeysym;
|
guint xkeysym;
|
||||||
guint keycode;
|
guint keycode;
|
||||||
|
|
||||||
@ -865,7 +865,13 @@ send_fake_key_event (EekboardClient *client,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
modifiers |= eek_keyboard_get_modifiers (client->keyboard);
|
/* Clear level shift modifiers */
|
||||||
|
keyboard_modifiers = eek_keyboard_get_modifiers (client->keyboard);
|
||||||
|
keyboard_modifiers &= ~EEK_SHIFT_MASK;
|
||||||
|
keyboard_modifiers &= ~EEK_LOCK_MASK;
|
||||||
|
keyboard_modifiers &= ~eek_keyboard_get_alt_gr_mask (client->keyboard);
|
||||||
|
|
||||||
|
modifiers |= keyboard_modifiers;
|
||||||
|
|
||||||
send_fake_modifier_key_event (client, modifiers, is_pressed);
|
send_fake_modifier_key_event (client, modifiers, is_pressed);
|
||||||
XSync (GDK_DISPLAY_XDISPLAY (client->display), False);
|
XSync (GDK_DISPLAY_XDISPLAY (client->display), False);
|
||||||
|
|||||||
Reference in New Issue
Block a user