mirror of
https://github.com/brl/mutter.git
synced 2024-12-25 12:32:05 +00:00
clutter: Create full event copy when handling unfiltered IM key events
We need to change at least event flags in the event we reinject after it was let through by the IM, in order to avoid doubly handling. Create a full event copy from the original event parameters. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3153>
This commit is contained in:
parent
2e8d839708
commit
b809023f4d
@ -363,10 +363,16 @@ clutter_input_method_notify_key_event (ClutterInputMethod *im,
|
||||
/* XXX: we rely on the IM implementation to notify back of
|
||||
* key events in the exact same order they were given.
|
||||
*/
|
||||
copy = clutter_event_copy (event);
|
||||
clutter_event_set_flags (copy, clutter_event_get_flags (event) |
|
||||
CLUTTER_EVENT_FLAG_INPUT_METHOD);
|
||||
clutter_event_set_source_device (copy, clutter_event_get_device (copy));
|
||||
copy = clutter_event_key_new (clutter_event_type (event),
|
||||
clutter_event_get_flags (event) |
|
||||
CLUTTER_EVENT_FLAG_INPUT_METHOD,
|
||||
ms2us (clutter_event_get_time (event)),
|
||||
clutter_event_get_device (event),
|
||||
clutter_event_get_state (event),
|
||||
clutter_event_get_key_symbol (event),
|
||||
clutter_event_get_event_code (event),
|
||||
clutter_event_get_key_code (event),
|
||||
clutter_event_get_key_unicode (event));
|
||||
clutter_event_put (copy);
|
||||
clutter_event_free (copy);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user