Revert to use fakekey_send_event.
This commit is contained in:
@ -604,6 +604,23 @@ on_xkl_state_changed (XklEngine *xklengine,
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_FAKEKEY
|
#ifdef HAVE_FAKEKEY
|
||||||
|
G_INLINE_FUNC FakeKeyModifier
|
||||||
|
get_fakekey_modifiers (EekModifierType modifiers)
|
||||||
|
{
|
||||||
|
FakeKeyModifier retval = 0;
|
||||||
|
|
||||||
|
if (modifiers & EEK_SHIFT_MASK)
|
||||||
|
retval |= FAKEKEYMOD_SHIFT;
|
||||||
|
if (modifiers & EEK_CONTROL_MASK)
|
||||||
|
retval |= FAKEKEYMOD_CONTROL;
|
||||||
|
if (modifiers & EEK_MOD1_MASK)
|
||||||
|
retval |= FAKEKEYMOD_ALT;
|
||||||
|
if (modifiers & EEK_META_MASK)
|
||||||
|
retval |= FAKEKEYMOD_META;
|
||||||
|
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
on_key_pressed (EekKeyboard *keyboard,
|
on_key_pressed (EekKeyboard *keyboard,
|
||||||
EekKey *key,
|
EekKey *key,
|
||||||
@ -616,10 +633,21 @@ 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)) {
|
||||||
fakekey_press_keysym (client->fakekey,
|
guint xkeysym = eek_keysym_get_xkeysym (EEK_KEYSYM(symbol));
|
||||||
eek_keysym_get_xkeysym (EEK_KEYSYM(symbol)),
|
guint keycode =
|
||||||
0);
|
XKeysymToKeycode (GDK_DISPLAY_XDISPLAY (client->display), xkeysym);
|
||||||
fakekey_release (client->fakekey);
|
EekModifierType modifiers =
|
||||||
|
eek_keyboard_get_modifiers (client->keyboard);
|
||||||
|
FakeKeyModifier fakekey_modifiers = get_fakekey_modifiers (modifiers);
|
||||||
|
|
||||||
|
fakekey_send_keyevent (client->fakekey,
|
||||||
|
keycode,
|
||||||
|
TRUE,
|
||||||
|
fakekey_modifiers);
|
||||||
|
fakekey_send_keyevent (client->fakekey,
|
||||||
|
keycode,
|
||||||
|
FALSE,
|
||||||
|
fakekey_modifiers);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user