mirror of
https://github.com/brl/mutter.git
synced 2025-07-23 01:51:38 +00:00
wayland: Replace manual GNode subsurface iteration with macro
Similar to wl_list_foreach(), add META_WAYLAND_SURFACE_FOREACH_SUBSURFACE() that iterates over all the subsurfaces of a surface, without the caller needing to care about implementation details, such as leaf nodes vs non-leaf nodes. https://gitlab.gnome.org/GNOME/mutter/merge_requests/961
This commit is contained in:

committed by
Georges Basile Stavracas Neto

parent
76ee026caa
commit
fcfe90aa9f
@ -147,9 +147,9 @@ meta_wayland_actor_surface_real_sync_actor_state (MetaWaylandActorSurface *actor
|
||||
meta_wayland_surface_role_get_surface (surface_role);
|
||||
MetaSurfaceActor *surface_actor;
|
||||
MetaShapedTexture *stex;
|
||||
GNode *n;
|
||||
cairo_rectangle_int_t surface_rect;
|
||||
int geometry_scale;
|
||||
MetaWaylandSurface *subsurface_surface;
|
||||
|
||||
surface_actor = priv->actor;
|
||||
stex = meta_surface_actor_get_texture (surface_actor);
|
||||
@ -213,19 +213,12 @@ meta_wayland_actor_surface_real_sync_actor_state (MetaWaylandActorSurface *actor
|
||||
meta_surface_actor_reset_viewport_dst_size (surface_actor);
|
||||
}
|
||||
|
||||
for (n = g_node_first_child (surface->subsurface_branch_node);
|
||||
n;
|
||||
n = g_node_next_sibling (n))
|
||||
META_WAYLAND_SURFACE_FOREACH_SUBSURFACE (surface, subsurface_surface)
|
||||
{
|
||||
MetaWaylandSurface *subsurface_surface = n->data;
|
||||
MetaWaylandActorSurface *subsurface_actor_surface;
|
||||
MetaWaylandActorSurface *actor_surface;
|
||||
|
||||
if (G_NODE_IS_LEAF (n))
|
||||
continue;
|
||||
|
||||
subsurface_actor_surface =
|
||||
META_WAYLAND_ACTOR_SURFACE (subsurface_surface->role);
|
||||
meta_wayland_actor_surface_sync_actor_state (subsurface_actor_surface);
|
||||
actor_surface = META_WAYLAND_ACTOR_SURFACE (subsurface_surface->role);
|
||||
meta_wayland_actor_surface_sync_actor_state (actor_surface);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user