clutter/actor: Make is_effectively_on_stage_view() match has_mapped_clones()

The clone handling did not take certain cases into consideration,
thus copy over some extra checks from `has_mapped_clones()`,
ensuring consistent behavior.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2671>
This commit is contained in:
Robert Mader 2022-12-09 20:16:00 +01:00 committed by Marge Bot
parent 04655c8bff
commit cef925c37f

View File

@ -15618,11 +15618,21 @@ clutter_actor_is_effectively_on_stage_view (ClutterActor *self,
ClutterActor *clone = key;
GList *clone_views;
if (!CLUTTER_ACTOR_IS_MAPPED (clone))
continue;
clone_views = clutter_actor_peek_stage_views (clone);
if (g_list_find (clone_views, view))
return TRUE;
}
}
/* Clones will force-show their own source actor but not children of
* it, so if we're hidden and an actor up the hierarchy has a clone,
* we won't be visible.
*/
if (!CLUTTER_ACTOR_IS_VISIBLE (actor))
return FALSE;
}
return FALSE;