Check keycode before passing it to fakekey_send_keyevent().
This commit is contained in:
19
src/client.c
19
src/client.c
@ -665,12 +665,19 @@ on_key_pressed (EekKeyboard *keyboard,
|
|||||||
|
|
||||||
symbol = eek_key_get_symbol_with_fallback (key, 0, 0);
|
symbol = eek_key_get_symbol_with_fallback (key, 0, 0);
|
||||||
if (EEK_IS_KEYSYM(symbol) && !eek_symbol_is_modifier (symbol)) {
|
if (EEK_IS_KEYSYM(symbol) && !eek_symbol_is_modifier (symbol)) {
|
||||||
guint xkeysym = eek_keysym_get_xkeysym (EEK_KEYSYM(symbol));
|
guint xkeysym;
|
||||||
guint keycode =
|
guint keycode;
|
||||||
XKeysymToKeycode (GDK_DISPLAY_XDISPLAY (client->display), xkeysym);
|
EekModifierType modifiers;
|
||||||
EekModifierType modifiers =
|
FakeKeyModifier fakekey_modifiers;
|
||||||
eek_keyboard_get_modifiers (client->keyboard);
|
|
||||||
FakeKeyModifier fakekey_modifiers = get_fakekey_modifiers (modifiers);
|
xkeysym = eek_keysym_get_xkeysym (EEK_KEYSYM(symbol));
|
||||||
|
g_return_if_fail (xkeysym > 0);
|
||||||
|
keycode = XKeysymToKeycode (GDK_DISPLAY_XDISPLAY (client->display),
|
||||||
|
xkeysym);
|
||||||
|
g_return_if_fail (keycode > 0);
|
||||||
|
|
||||||
|
modifiers = eek_keyboard_get_modifiers (client->keyboard);
|
||||||
|
fakekey_modifiers = get_fakekey_modifiers (modifiers);
|
||||||
|
|
||||||
fakekey_send_keyevent (client->fakekey,
|
fakekey_send_keyevent (client->fakekey,
|
||||||
keycode,
|
keycode,
|
||||||
|
|||||||
Reference in New Issue
Block a user