clutter/evdev: ignore injected events from IM

Input method can inject key events, which leads to multiple reported key
press/release events for a single user action.

Ignore those events as this confuses keyboard accessibility.
This commit is contained in:
Olivier Fourdan 2018-04-17 13:32:21 +02:00
parent 2d80fd02e7
commit c01b099dbd

View File

@ -1122,6 +1122,10 @@ clutter_input_device_evdev_process_kbd_a11y_event (ClutterEvent *e
{ {
ClutterInputDeviceEvdev *device_evdev = CLUTTER_INPUT_DEVICE_EVDEV (device); ClutterInputDeviceEvdev *device_evdev = CLUTTER_INPUT_DEVICE_EVDEV (device);
/* Ignore key events injected from IM */
if (event->key.flags & CLUTTER_EVENT_FLAG_INPUT_METHOD)
goto emit_event;
if (!device_evdev->a11y_flags & CLUTTER_A11Y_KEYBOARD_ENABLED) if (!device_evdev->a11y_flags & CLUTTER_A11Y_KEYBOARD_ENABLED)
goto emit_event; goto emit_event;