The e_desk_area implements the e_comp_object_stack_below function.
Change-Id: Id42f2a82811b7560ee0340f55ffb2c36a9f46198
}
}
+#ifdef REFACTOR_DESK_AREA
+EINTERN void
+_e_comp_object_stack_below(Evas_Object *obj, Evas_Object *target)
+#else
static void
_e_comp_object_stack_below(Evas_Object *obj, Evas_Object *target)
+#endif
{
evas_object_stack_below(obj, target);
_e_comp_intercept_stack_below(void *data, Evas_Object *obj, Evas_Object *below)
{
EINA_SAFETY_ON_TRUE_RETURN(obj == below);
+
+ TRACE_DS_BEGIN(COMP:INTERCEPT STACK BELOW);
+
+#ifdef REFACTOR_DESK_AREA
+ E_Comp_Object *cw = data;
+ E_Comp_Object_Data_Stack_Below stack_below_data;
+
+ stack_below_data.cw = cw;
+ stack_below_data.below_obj = below;
+
+ wl_signal_emit_mutable(&cw->events.stack_below, &stack_below_data);
+
+ if (!cw->visible)
+ e_comp_render_queue();
+#else
if (evas_object_above_get(obj) == below)
{
e_comp_object_layer_update(obj, NULL, below);
return;
}
- TRACE_DS_BEGIN(COMP:INTERCEPT STACK BELOW);
_e_comp_intercept_stack_helper(data, below, _e_comp_object_stack_below);
+
if (evas_object_smart_smart_get(obj))
_e_comp_object_transform_obj_stack_update(obj);
if (evas_object_smart_smart_get(below))
_e_comp_object_transform_obj_stack_update(below);
+#endif
+
TRACE_DS_END();
}
EINTERN void _e_comp_object_layers_remove(E_Comp_Object *cw);
EINTERN void e_comp_object_layer_set(Evas_Object *obj, short layer);
EINTERN void _e_comp_object_stack_above(Evas_Object *obj, Evas_Object *target);
+EINTERN void _e_comp_object_stack_below(Evas_Object *obj, Evas_Object *target);
EINTERN void _e_comp_intercept_stack_helper(E_Comp_Object *cw, Evas_Object *stack, E_Comp_Object_Stack_Func stack_cb);
EINTERN void _e_comp_object_transform_obj_stack_update(Evas_Object *obj);
//#endif
E_Comp_Object_Data_Stack_Above *stack_above_data;
E_Comp_Object *cw;
- eda_client = wl_container_of(listener, eda_client, comp_object_set_layer);
+ eda_client = wl_container_of(listener, eda_client, comp_object_stack_above);
ec = eda_client->ec;
obj = ec->frame;
stack_above_data = (E_Comp_Object_Data_Stack_Above *)data;
static void
_desk_area_cb_comp_object_stack_below(struct wl_listener *listener, void *data)
{
- // TODO:
+ E_Desk_Area_Private_Client *eda_client;
+ E_Client *ec;
+ Evas_Object *obj, *below;
+ E_Comp_Object_Data_Stack_Below *stack_below_data;
+ E_Comp_Object *cw;
+
+ eda_client = wl_container_of(listener, eda_client, comp_object_stack_below);
+ ec = eda_client->ec;
+ obj = ec->frame;
+ stack_below_data = (E_Comp_Object_Data_Stack_Below *)data;
+ cw = stack_below_data->cw;
+ below = stack_below_data->below_obj;
+
+ if (evas_object_above_get(obj) == below)
+ {
+ e_comp_object_layer_update(obj, NULL, below);
+ return;
+ }
+
+ _e_comp_intercept_stack_helper(cw, below, _e_comp_object_stack_below);
+
+ if (evas_object_smart_smart_get(obj))
+ _e_comp_object_transform_obj_stack_update(obj);
+ if (evas_object_smart_smart_get(below))
+ _e_comp_object_transform_obj_stack_update(below);
+
}
static Eina_Bool