diff --git a/clutter/clutter/clutter-event-private.h b/clutter/clutter/clutter-event-private.h index b79e30064..dd4d3420a 100644 --- a/clutter/clutter/clutter-event-private.h +++ b/clutter/clutter/clutter-event-private.h @@ -145,6 +145,7 @@ CLUTTER_EXPORT ClutterEvent * clutter_event_im_new (ClutterEventType type, ClutterEventFlags flags, int64_t timestamp_us, + ClutterSeat *seat, const char *text, int32_t offset, int32_t anchor, diff --git a/clutter/clutter/clutter-event.c b/clutter/clutter/clutter-event.c index f3e9f3836..cdeea6790 100644 --- a/clutter/clutter/clutter-event.c +++ b/clutter/clutter/clutter-event.c @@ -2383,6 +2383,7 @@ ClutterEvent * clutter_event_im_new (ClutterEventType type, ClutterEventFlags flags, int64_t timestamp_us, + ClutterSeat *seat, const char *text, int32_t offset, int32_t anchor, @@ -2405,6 +2406,8 @@ clutter_event_im_new (ClutterEventType type, event->im.len = len; event->im.mode = mode; + g_set_object (&event->im.device, clutter_seat_get_keyboard (seat)); + return event; } diff --git a/clutter/clutter/clutter-input-method.c b/clutter/clutter/clutter-input-method.c index 74bcc731e..04d97ebc1 100644 --- a/clutter/clutter/clutter-input-method.c +++ b/clutter/clutter/clutter-input-method.c @@ -279,11 +279,15 @@ clutter_input_method_put_im_event (ClutterInputMethod *im, uint32_t len, ClutterPreeditResetMode mode) { + ClutterSeat *seat; ClutterEvent *event; + seat = clutter_backend_get_default_seat (clutter_get_default_backend ()); + event = clutter_event_im_new (event_type, CLUTTER_EVENT_FLAG_INPUT_METHOD, CLUTTER_CURRENT_TIME, + seat, text, offset, anchor,