if (e_comp_wl_subsurface_order_commit(ec))
{
- E_Client *topmost = e_comp_wl_topmost_parent_get(ec);
- e_comp_wl_subsurface_restack(topmost);
- e_comp_wl_subsurface_restack_bg_rectangle(topmost);
+ e_comp_wl_subsurface_restack(ec);
+ e_comp_wl_subsurface_restack_bg_rectangle(ec);
}
if (!e_pixmap_usable_get(ec->pixmap))
static Eina_Bool
_e_comp_wl_subsurface_order_commit(E_Client *ec)
{
- E_Client *subc, *epc;
+ E_Client *subc;
Eina_List *l;
- Eina_Bool need_restack = EINA_FALSE;
if (!ec->comp_data) return EINA_FALSE;
- if (ec->comp_data->sub.data && (epc = ec->comp_data->sub.data->parent))
- if (epc->comp_data->sub.list_changed)
- need_restack = _e_comp_wl_subsurface_order_commit(epc);
+ if (!ec->comp_data->sub.list_changed)
+ return EINA_FALSE;
- if (!ec->comp_data->sub.list_changed) return (EINA_FALSE | need_restack);
ec->comp_data->sub.list_changed = EINA_FALSE;
/* TODO: need to check more complicated subsurface tree */
if (_e_comp_wl_subsurface_order_commit(ec))
{
- E_Client *topmost = e_comp_wl_topmost_parent_get(ec);
- _e_comp_wl_subsurface_restack(topmost);
- _e_comp_wl_subsurface_restack_bg_rectangle(topmost);
+ _e_comp_wl_subsurface_restack(ec);
+ _e_comp_wl_subsurface_restack_bg_rectangle(ec);
}
sdata->cached.has_data = EINA_FALSE;
EINTERN void
e_comp_wl_subsurface_restack(E_Client *ec)
{
- E_Client *topmost;
-
EINA_SAFETY_ON_NULL_RETURN(ec);
- topmost = e_comp_wl_topmost_parent_get(ec);
- if (topmost != ec)
- {
- ELOGF("SUB-COMP",
- "WARN: This API is only for topmost parent, not sub-surface.",
- ec);
- return;
- }
-
_e_comp_wl_subsurface_restack(ec);
}