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:
parent
04655c8bff
commit
cef925c37f
@ -15618,11 +15618,21 @@ clutter_actor_is_effectively_on_stage_view (ClutterActor *self,
|
|||||||
ClutterActor *clone = key;
|
ClutterActor *clone = key;
|
||||||
GList *clone_views;
|
GList *clone_views;
|
||||||
|
|
||||||
|
if (!CLUTTER_ACTOR_IS_MAPPED (clone))
|
||||||
|
continue;
|
||||||
|
|
||||||
clone_views = clutter_actor_peek_stage_views (clone);
|
clone_views = clutter_actor_peek_stage_views (clone);
|
||||||
if (g_list_find (clone_views, view))
|
if (g_list_find (clone_views, view))
|
||||||
return TRUE;
|
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;
|
return FALSE;
|
||||||
|
Loading…
Reference in New Issue
Block a user