EINTERN void e_client_stack_transient_for_done_notify(E_Client *ec);
+//#ifdef REFACTOR_DESK_AREA
EINTERN void e_client_subsurface_stack_update(E_Client *ec);
+//#endif
/**
* Move window to coordinates that do not account client decorations yet.
_e_comp_wl_subsurface_restack(topmost);
_e_comp_wl_subsurface_restack_bg_rectangle(topmost);
+#ifdef REFACTOR_DESK_AREA
+ e_client_subsurface_stack_update(ec);
+#else
//To update client stack list
if ((ec->comp_data->sub.data) &&
(ec->comp_data->sub.data->parent))
e_comp_object_layer_update(ec->frame, NULL, o);
}
}
+#endif
}
static void
_desk_area_cb_client_subsurface_stack_update(struct wl_listener *listener, void *data)
{
- // TODO:
+ E_Desk_Area_Private_Client *eda_client;
+ E_Client *ec;
+
+ eda_client = wl_container_of(listener, eda_client, client_subsurface_stack_update);
+ ec = eda_client->ec;
+
+ //To update client stack list
+ if ((ec->comp_data->sub.data) &&
+ (ec->comp_data->sub.data->parent))
+ {
+ E_Client *parent;
+ Evas_Object *o;
+
+ parent = ec->comp_data->sub.data->parent;
+
+ if ((parent->comp_data->sub.list) &&
+ (eina_list_data_find(parent->comp_data->sub.list, ec)))
+ {
+ //stack above done
+ o = evas_object_below_get(ec->frame);
+ e_comp_object_layer_update(ec->frame, o, NULL);
+ }
+ else if ((parent->comp_data->sub.below_list) &&
+ (eina_list_data_find(parent->comp_data->sub.below_list, ec)))
+ {
+ //stack below done
+ o = evas_object_above_get(ec->frame);
+ e_comp_object_layer_update(ec->frame, NULL, o);
+ }
+ }
}
static void
_desk_area_cb_comp_object_lower(struct wl_listener *listener, void *data)