* clutter/clutter-main.c: (generate_enter_leave_events),

(clutter_do_event): moved the generation of enter/leave events
to a utility function.
This commit is contained in:
Øyvind Kolås 2007-11-15 17:32:09 +00:00
parent 266315c486
commit 36c6189405

View File

@ -1203,6 +1203,48 @@ done:
#undef MAX_EVENT_DEPTH
}
<<<<<<< .mine
static inline void generate_enter_leave_events (ClutterMainContext *context,
ClutterActor *motion_current_actor,
ClutterEvent *event)
{
static ClutterActor *motion_last_actor = NULL;
if (motion_last_actor != motion_current_actor)
{
if (motion_last_actor && motion_current_actor)
{
ClutterEvent cev;
cev.crossing.type = CLUTTER_LEAVE;
cev.crossing.time = event->any.time;
cev.crossing.flags = 0;
cev.crossing.x = event->motion.x;
cev.crossing.y = event->motion.y;
cev.crossing.source = motion_last_actor;
/* unref in free */
cev.crossing.related = g_object_ref (motion_current_actor);
g_queue_push_head (context->events_queue,
clutter_event_copy (&cev));
cev.crossing.type = CLUTTER_ENTER;
cev.crossing.time = event->any.time;
cev.crossing.flags = 0;
cev.crossing.x = event->motion.x;
cev.crossing.y = event->motion.y;
cev.crossing.source = motion_current_actor;
cev.crossing.related = g_object_ref (motion_last_actor);
g_queue_push_head (context->events_queue,
clutter_event_copy (&cev));
}
}
motion_last_actor = motion_current_actor;
}
=======
static void generate_enter_leave_events (ClutterMainContext *context,
ClutterActor *motion_current_actor,
@ -1243,6 +1285,7 @@ static void generate_enter_leave_events (ClutterMainContext *context,
motion_last_actor = motion_current_actor;
}
>>>>>>> .r1604
/**
* clutter_do_event
* @event: a #ClutterEvent.