actor: Skip top-levels in should_pick_paint()

When calling the clutter_actor_should_pick_paint() function, we should
also skip if the actor is a top-level.

The Stage is automatically cleared with the right color when picking,
as an optimization so that we don't have to submit further geometry or
change state; this means that calling should_pick_paint() should always
return FALSE on a Stage.
This commit is contained in:
Emmanuele Bassi 2012-02-22 16:46:35 +00:00 committed by Emmanuele Bassi
parent 5ad1ec7cca
commit c5e1a34408
1 changed files with 2 additions and 1 deletions

View File

@ -2082,7 +2082,8 @@ clutter_actor_should_pick_paint (ClutterActor *self)
{
g_return_val_if_fail (CLUTTER_IS_ACTOR (self), FALSE);
if (CLUTTER_ACTOR_IS_MAPPED (self) &&
if (!CLUTTER_ACTOR_IS_TOPLEVEL (self) &&
CLUTTER_ACTOR_IS_MAPPED (self) &&
(_clutter_context_get_pick_mode () == CLUTTER_PICK_ALL ||
CLUTTER_ACTOR_IS_REACTIVE (self)))
return TRUE;