+gtk_clutter_embed_motion_notify_event (GtkWidget *widget,
+ GdkEventMotion *event)
+{
+ GtkClutterEmbedPrivate *priv = GTK_CLUTTER_EMBED (widget)->priv;
+ ClutterEvent cevent = { 0, };
+
+ cevent.type = CLUTTER_MOTION;
+ cevent.any.stage = CLUTTER_STAGE (priv->stage);
+ cevent.motion.x = event->x;
+ cevent.motion.y = event->y;
+ cevent.motion.time = event->time;
+
+ clutter_do_event (&cevent);
+
+ /* doh - motion events can push ENTER/LEAVE events onto Clutters
+ * internal event queue which we do really ever touch (essentially
+ * proxying from gtks queue). The below pumps them back out and
+ * processes.
+ * *could* be side effects with below though doubful as no other
+ * events reach the queue (we shut down event collection). Maybe
+ * a peek_mask type call could be even safer.
+ */
+ while (clutter_events_pending())
+ {
+ ClutterEvent *ev = clutter_event_get ();
+ if (ev)
+ {
+ clutter_do_event (ev);
+ clutter_event_free (ev);
+ }
+ }
+
+ return FALSE;
+}
+
+static gboolean