if (child->transient_policy == E_TRANSIENT_ABOVE)
{
if (below)
- evas_object_stack_below(child->frame, below->frame);
+ e_client_stack_below(child, below);
else
- evas_object_stack_above(child->frame, ec->frame);
+ e_client_stack_above(child, ec);
below = child;
}
else if (child->transient_policy == E_TRANSIENT_BELOW)
{
if (above)
- evas_object_stack_above(child->frame, above->frame);
+ e_client_stack_above(child, above);
else
- evas_object_stack_below(child->frame, ec->frame);
+ e_client_stack_below(child, ec);
above = child;
}
evas_object_lower(ec->frame);
}
+E_API void
+e_client_stack_above(E_Client *ec, E_Client *above)
+{
+ if (!ec) return;
+ if (!ec->frame) return;
+ if (!above) return;
+ if (!above->frame) return;
+
+ evas_object_stack_above(ec->frame, above->frame);
+}
+
+E_API void
+e_client_stack_below(E_Client *ec, E_Client *below)
+{
+ if (!ec) return;
+ if (!ec->frame) return;
+ if (!below) return;
+ if (!below->frame) return;
+
+ evas_object_stack_below(ec->frame, below->frame);
+}
+
static Eina_Bool
_e_client_surface_tree_foreach_helper(E_Client *ec, E_Client_Surface_Tree_Foreach func, void *data)
{
E_API void e_client_raise(E_Client *ec);
E_API void e_client_lower(E_Client *ec);
+// ec is placed on the above
+E_API void e_client_stack_above(E_Client *ec, E_Client *above);
+// ec is placed under the below
+E_API void e_client_stack_below(E_Client *ec, E_Client *below);
EINTERN void e_client_surface_tree_foreach(E_Client *ec, E_Client_Surface_Tree_Foreach func, void *data);
{
if (!subc || !subc->comp_data || e_object_is_del(E_OBJECT(subc))) continue;
subc->comp_data->sub.restacking = EINA_TRUE;
- evas_object_stack_above(subc->frame, temp->frame);
+ e_client_stack_above(subc, temp);
subc->comp_data->sub.restacking = EINA_FALSE;
temp = subc;
}
{
if (!subc || !subc->comp_data || e_object_is_del(E_OBJECT(subc))) continue;
subc->comp_data->sub.restacking = EINA_TRUE;
- evas_object_stack_below(subc->frame, temp->frame);
+ e_client_stack_below(subc, temp);
subc->comp_data->sub.restacking = EINA_FALSE;
temp = subc;
}
}
if (top)
- evas_object_stack_above(ec->frame, top->frame);
+ e_client_stack_above(ec, top);
else
- evas_object_stack_above(ec->frame, ec->parent->frame);
+ e_client_stack_above(ec, ec->parent);
}
else if (ec->transient_policy == E_TRANSIENT_BELOW)
{
- evas_object_stack_below(ec->frame, ec->parent->frame);
+ e_client_stack_below(ec, ec->parent);
}
}
EINA_SAFETY_ON_NULL_RETURN(below_ec);
EINA_SAFETY_ON_NULL_RETURN(below_ec->frame);
- evas_object_stack_below(ec->frame, below_ec->frame);
+ e_client_stack_below(ec, below_ec);
e_comp_wl_subsurface_stack_update(below_ec);
if (e_config->transient.iconify)
{
EINA_SAFETY_ON_NULL_RETURN(above_ec);
EINA_SAFETY_ON_NULL_RETURN(above_ec->frame);
- evas_object_stack_above(ec->frame, above_ec->frame);
+ e_client_stack_above(ec, above_ec);
e_comp_wl_subsurface_stack_update(above_ec);
if (e_config->transient.iconify)
{
e_client_util_win_get(tzsh_srv_ec));
e_policy_stack_transient_for_set(tzsh_srv_ec, tzsh_client_ec);
- evas_object_stack_below(tzsh_srv_ec->frame, tzsh_client_ec->frame);
+ e_client_stack_below(tzsh_srv_ec, tzsh_client_ec);
}
else
{
{
ELOGF("SLOT", "e_slot_raise |raise ec - id:%d [cnt:%d]pid:%d", ec2, sd->id, cnt++, ec2->netwm.pid);
if (top_ec == ec2) e_client_raise(ec2);
- else evas_object_stack_below(ec2->frame, below_ec->frame);
+ else e_client_stack_below(ec2, below_ec);
below_ec = ec2;
}
{
if (above)
- evas_object_stack_above(ec->frame, tec->frame);
+ e_client_stack_above(ec, tec);
else
- evas_object_stack_below(ec->frame, tec->frame);
+ e_client_stack_below(ec, tec);
}
}