if (e_comp_canvas_client_layer_map(layer) == 9999)
return EINA_FALSE; //invalid layer is not allowed
+#ifdef REFACTOR_DESK_AREA
+#else
if (ec->desk_area.enable)
{
if (e_client_layer_set_by_desk_area(ec, layer))
}
}
ec->desk_area.layer_backup = layer;
+#endif
evas_object_layer_set(ec->frame, layer);
if (ec->layer != layer)
return ec->layer;
}
+#ifdef REFACTOR_DESK_AREA
+#else
static void
_e_client_desk_area_original_layer_save(E_Client *ec, E_Layer layer)
{
return EINA_TRUE;
}
+#endif
static void
_raise_between_sibling_under_parent(E_Client *ec)
{
if (!ec) return;
+#ifdef REFACTOR_DESK_AREA
+#else
if (ec->desk_area.enable)
{
E_Desk_Area *eda;
return;
}
}
+#endif
if (ec->parent && e_client_is_belong_to_parent(ec))
_raise_belong_to_parent(ec);
{
if (!ec) return;
+#ifdef REFACTOR_DESK_AREA
+#else
if (ec->desk_area.enable)
{
E_Desk_Area *eda;
return;
}
}
+#endif
if (ec->parent && e_client_is_belong_to_parent(ec))
_lower_belong_to_parent(ec);
if (!above) return;
if (!above->frame) return;
+#ifdef REFACTOR_DESK_AREA
+#else
if (ec->desk_area.enable)
{
E_Desk_Area *eda;
return;
}
}
+#endif
evas_object_stack_above(ec->frame, above->frame);
if (!below) return;
if (!below->frame) return;
+#ifdef REFACTOR_DESK_AREA
+#else
if (ec->desk_area.enable)
{
E_Desk_Area *eda;
return;
}
}
+#endif
evas_object_stack_below(ec->frame, below->frame);
struct
{
Eina_Bool enable;
- E_Desk_Area *desk_area;
+ E_Desk_Area *desk_area;
+//#ifdef REFACTOR_DESK_AREA
+//#else
E_Desk_Area_Client_Layer edgc_layer; // used by desk_area mode
E_Layer layer_backup; // original layer (used by no desk_area mode)
+//#endif
E_Util_Transform *transform;
} desk_area;
*/
E_API E_Layer e_client_layer_get(E_Client *ec);
+//#ifdef REFACTOR_DESK_AREA
+//#else
EINTERN Eina_Bool e_client_layer_set_by_desk_area(E_Client *ec, E_Layer layer);
EINTERN void e_client_desk_area_original_layer_restore(E_Client *ec);
EINTERN E_Layer e_client_desk_area_original_layer_get(E_Client *ec);
EINTERN E_Desk_Area_Client_Layer e_client_desk_area_client_layer_get(E_Client *ec);
E_API Eina_Bool e_client_desk_area_set(E_Client *ec, E_Desk_Area *eda);
+//#endif
E_API void e_client_raise(E_Client *ec);
E_API void e_client_lower(E_Client *ec);
#ifdef REFACTOR_DESK_AREA
eda = e_desk_desk_area_base_get(desk);
e_desk_area_ec_add(eda, ec);
- e_desk_area_ec_enable_set(desk->desk_area.base, ec, EINA_TRUE);
_e_desk_smart_client_add(desk->smart_obj, ec);
eda = e_desk_desk_area_base_get(desk);
e_desk_area_ec_remove(eda, ec);
- e_desk_area_ec_enable_set(desk->desk_area.base, ec, EINA_FALSE);
_e_desk_client_data_del(desk, ec);
#else
return desk->desk_area.active;
}
+#ifdef REFACTOR_DESK_AREA
+#else
static void
_e_desk_desk_area_check_ec_in_desk_area(E_Desk *desk)
{
}
return EINA_TRUE;
}
+#endif
EINTERN void
e_desk_desk_area_raise(E_Desk *desk, E_Desk_Area *eda)
EINTERN E_Desk_Area *e_desk_desk_area_base_get(E_Desk *desk);
EINTERN void e_desk_desk_area_active_set(E_Desk *desk, E_Desk_Area *eda);
EINTERN E_Desk_Area *e_desk_desk_area_active_get(E_Desk *desk);
+//#ifdef REFACTOR_DESK_AREA
+//#else
E_API Eina_Bool e_desk_desk_area_enable(E_Desk *desk);
E_API Eina_Bool e_desk_desk_area_disable(E_Desk *desk);
+//#endif
EINTERN void e_desk_desk_area_raise(E_Desk *desk, E_Desk_Area *eda);
EINTERN void e_desk_desk_area_lower(E_Desk *desk, E_Desk_Area *eda);
EINTERN E_Desk_Area *e_desk_desk_area_above_get(E_Desk *desk, E_Desk_Area *eda);
evas_object_smart_clipped_class_get, NULL)
#endif
+#ifdef REFACTOR_DESK_AREA
+#else
static Eina_Bool
_check_desk_area_client_layer_validation(E_Desk_Area_Client_Layer edgc_layer)
{
e_client_desk_area_client_layer_set(ec, below_edgc_layer);
}
+#endif
static void
_e_desk_geometry_info_set(E_Desk_Area *eda, int x, int y, int w, int h)
static void
_e_desk_area_free(E_Desk_Area *eda)
{
+#ifdef REFACTOR_DESK_AREA
+#else
for (int i = 0; i < E_DESK_AREA_CLIENT_LAYER_MAX; i++)
{
eina_list_free(eda->ec_lists[i]);
if (eda->active)
_e_desk_area_active_change(NULL, eda->desk);
+#endif
E_FREE_FUNC(eda->hook_subsurf_create, e_comp_wl_hook_del);
return eda;
}
+#ifdef REFACTOR_DESK_AREA
+#else
void _e_desk_area_ec_geometry_apply(E_Desk_Area *eda, E_Client *ec)
{
E_Maximize max;
return EINA_TRUE;
}
+#endif
E_API Eina_Bool
e_desk_area_geometry_set(E_Desk_Area *eda, int x, int y, int w, int h)
}
}
-
+#ifdef REFACTOR_DESK_AREA
+#else
static E_Desk_Area_Client_Layer
_e_desk_area_client_layer_convert_from_layer(E_Layer layer)
{
return edg_layer;
}
+#endif
#ifdef REFACTOR_DESK_AREA
static E_Desk_Area_Private_Client *
E_API Eina_Bool
e_desk_area_ec_add(E_Desk_Area *eda, E_Client *ec)
{
+#ifdef REFACTOR_DESK_AREA
+#else
E_Desk_Area_Client_Layer edgc_layer;
E_Layer layer;
+#endif
#ifdef REFACTOR_DESK_AREA
E_Desk_Area_Private_Client *eda_client;
eda->clients = eina_list_append(eda->clients, eda_client);
_e_desk_area_smart_client_add(eda->smart_obj, ec);
-#endif
-
+#else
layer = e_client_desk_area_original_layer_get(ec);
edgc_layer = _e_desk_area_client_layer_convert_from_layer(layer);
eda->ec_lists[edgc_layer] = eina_list_prepend(eda->ec_lists[edgc_layer], ec);
e_client_desk_area_client_layer_set(ec, edgc_layer);
+#endif
return EINA_TRUE;
}
E_API void
e_desk_area_ec_remove(E_Desk_Area *eda, E_Client *ec)
{
- E_Desk_Area_Client_Layer edgc_layer;
-
#ifdef REFACTOR_DESK_AREA
E_Desk_Area_Private_Client *eda_client;
wl_list_remove(&eda_client->client_get_above.link);
E_FREE(eda_client);
-#endif
-
+#else
edgc_layer = e_client_desk_area_client_layer_get(ec);
if (!_check_desk_area_client_layer_validation(edgc_layer)) return;
eda->ec_lists[edgc_layer] = eina_list_remove(eda->ec_lists[edgc_layer], ec);
+#endif
}
+#ifdef REFACTOR_DESK_AREA
+#else
static E_Client *
_find_above_ec_in_same_edgc_layer(E_Desk_Area *eda, E_Client *ec)
{
return eda->transform_enabled;
}
-
+#endif
// for debug
EINTERN void
e_desk_area_info_print(E_Desk_Area *eda)
{
+#ifdef REFACTOR_DESK_AREA
Eina_List *l;
E_Client *ec;
}
}
ELOGF("EDG_INFO", "===========================================", NULL);
+#endif
}
static void
_e_desk_area_hooks_delete++;
}
+#ifdef REFACTOR_DESK_AREA
+#else
E_API Eina_Bool
e_desk_area_ec_reassign(E_Desk_Area *eda, E_Client *ec)
{
return EINA_TRUE;
}
+#endif
static void
_desk_area_cb_splitscreen_region_destroy(struct wl_listener *listener EINA_UNUSED, void *data EINA_UNUSED)
EINTERN E_Desk_Area *e_desk_area_new(E_Desk *desk, int id, int x, int y, int w, int h, E_Desk_Area_Layer layer);
+//#ifdef REFACTOR_DESK_AREA
+//#else
EINTERN Eina_Bool e_desk_area_enable_set(E_Desk_Area *eda, Eina_Bool enable);
+//#endif
E_API Eina_Bool e_desk_area_geometry_set(E_Desk_Area *eda, int x, int y, int w, int h);
E_API Eina_Bool e_desk_area_geometry_get(E_Desk_Area *eda, int *x, int *y, int *w, int *h);
E_API void e_desk_area_raise(E_Desk_Area *eda);
E_API void e_desk_area_lower(E_Desk_Area *eda);
-
E_API Eina_Bool e_desk_area_ec_add(E_Desk_Area *eda, E_Client *ec);
E_API void e_desk_area_ec_remove(E_Desk_Area *eda, E_Client *ec);
+//#ifdef REFACTOR_DESK_AREA
+//#else
EINTERN void e_desk_area_ec_raise(E_Desk_Area *eda, E_Client *ec);
EINTERN void e_desk_area_ec_lower(E_Desk_Area *eda, E_Client *ec);
EINTERN void e_desk_area_ec_stack_above(E_Desk_Area *eda, E_Client *ec, E_Client *above);
E_API void e_desk_area_transform_enable_set(E_Desk_Area *eda, Eina_Bool enable);
E_API Eina_Bool e_desk_area_transform_enable_get(E_Desk_Area *eda);
+//#endif
// for debug
EINTERN void e_desk_area_info_print(E_Desk_Area *eda);
E_API E_Desk_Area_Hook *e_desk_area_hook_add(E_Desk_Area_Hook_Point hookpoint, E_Desk_Area_Hook_Cb func, const void *data);
E_API void e_desk_area_hook_del(E_Desk_Area_Hook *dgh);
+//#ifdef REFACTOR_DESK_AREA
+//#else
E_API Eina_Bool e_desk_area_ec_reassign(E_Desk_Area *eda, E_Client *ec);
EINTERN Eina_Bool e_desk_area_ec_enable_set(E_Desk_Area *eda, E_Client *ec, Eina_Bool enable);
extern E_API int E_EVENT_DESK_AREA_CHANGE;
+//#endif
#endif
#endif
_e_info_server_cb_desk_area_enable(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
{
Eldbus_Message *reply = eldbus_message_method_return_new(msg);
+#ifdef REFACTOR_DESK_AREA
+#else
uint32_t enable;
if (!eldbus_message_arguments_get(msg, "i", &enable))
{
e_desk_desk_area_disable(e_desk_current_get(e_zone_current_get()));
}
-
+#endif
return reply;
}
+#ifdef REFACTOR_DESK_AREA
+#else
static void _desk_area_new(int sub_edg_id, int x, int y, int w, int h, int layer)
{
E_Zone *zone;
}
}
}
+#endif
static Eldbus_Message *
_e_info_server_cb_desk_area_new_sub1(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
{
Eldbus_Message *reply = eldbus_message_method_return_new(msg);
+
+#ifdef REFACTOR_DESK_AREA
+#else
E_Client *ec;
int x, y, w, h;
int layer;
}
//e_desk_area_all_ec_update(_edg_sub1);
+#endif
return reply;
}
_e_info_server_cb_desk_area_new_sub2(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
{
Eldbus_Message *reply = eldbus_message_method_return_new(msg);
+
+#ifdef REFACTOR_DESK_AREA
+#else
int x, y, w, h;
int layer;
E_Client *ec;
else if (e_policy_client_is_quickpanel(ec))
e_desk_area_ec_reassign(_edg_sub2, ec);
}
+#endif
return reply;
}
ec->icccm.transient_for, e_client_util_win_get(ec->parent));
}
+#ifdef REFACTOR_DESK_AREA
+#else
if (parent)
{
if (ec->desk_area.desk_area && parent->desk_area.desk_area)
}
}
}
+#endif
intercepted = e_policy_interceptor_call(E_POLICY_INTERCEPT_STACK_TRANSIENT_FOR,
ec);
return;
}
+#ifdef REFACTOR_DESK_AREA
+ if (ec->parent->layer != ec->layer)
+ {
+ raise = e_config->transient.raise;
+
+ ec->saved.layer = ec->layer;
+ if (e_config->transient.layer)
+ {
+ e_config->transient.raise = 1;
+ EINA_LIST_FOREACH(ec->transients, l, child)
+ {
+ if (!child) continue;
+ child->saved.layer = child->layer;
+ }
+ }
+
+ e_client_layer_set(ec, ec->parent->layer);
+ e_config->transient.raise = raise;
+ }
+#else
if (ec->desk_area.enable)
{
E_Layer layer;
e_config->transient.raise = raise;
}
}
+#endif
E_Transient transient_policy = e_client_transient_policy_get(ec);
if (transient_policy == E_TRANSIENT_ABOVE)
default: ly = E_LAYER_CLIENT_NOTIFICATION_LOW; break;
}
+#ifdef REFACTOR_DESK_AREA
+ cur_ly = e_client_layer_get(ec);
+#else
if (e_config->use_desk_area)
cur_ly = e_client_desk_area_original_layer_get(ec);
else
cur_ly = e_client_layer_get(ec);
+#endif
if (cur_ly != ly)
{
zx = zy = zw = zh = 0;
ec->maximize_override = 1;
+#ifdef REFACTOR_DESK_AREA
+ desk_x = desk->geom.x;
+ desk_y = desk->geom.y;
+ desk_w = desk->geom.w;
+ desk_h = desk->geom.h;
+#else
if (ec->desk_area.enable && ec->desk_area.desk_area)
{
desk_x = ec->desk_area.desk_area->x;
desk_w = desk->geom.w;
desk_h = desk->geom.h;
}
+#endif
switch (max & E_MAXIMIZE_TYPE)
{
desk = e_zone_desk_find_by_ec(zone, ec);
EINA_SAFETY_ON_NULL_RETURN(desk);
+#ifdef REFACTOR_DESK_AREA
+ desk_x = desk->geom.x;
+ desk_y = desk->geom.y;
+#else
if (ec->desk_area.enable && ec->desk_area.desk_area)
{
desk_x = ec->desk_area.desk_area->x;
desk_x = desk->geom.x;
desk_y = desk->geom.y;
}
-
+#endif
ec->pre_res_change.valid = 0;
if (!ec->fullscreen)
e_client_window_role_set(ec, "lockscreen");
+#ifdef REFACTOR_DESK_AREA
+ // set lockscreen layer
+ layer = e_client_layer_get(ec);
+#else
// set lockscreen layer
if (e_config->use_desk_area)
layer = e_client_desk_area_original_layer_get(ec);
else
layer = e_client_layer_get(ec);
+#endif
if (E_LAYER_CLIENT_NOTIFICATION_LOW > layer)
{
e_client_window_role_set(ec, "quickpanel_apps_menu");
}
+#ifdef REFACTOR_DESK_AREA
+ // set quickpanel layer
+ layer = e_client_layer_get(ec);
+#else
// set quickpanel layer
if (e_config->use_desk_area)
layer = e_client_desk_area_original_layer_get(ec);
else
layer = e_client_layer_get(ec);
+#endif
if (E_POLICY_QUICKPANEL_LAYER != layer)
e_client_layer_set(ec, E_POLICY_QUICKPANEL_LAYER);
ELOGF("SCRSAVER","Set Client", ec);
+#ifdef REFACTOR_DESK_AREA
+ // set screensaver layer
+ layer = e_client_layer_get(ec);
+#else
// set screensaver layer
if (e_config->use_desk_area)
layer = e_client_desk_area_original_layer_get(ec);
else
layer = e_client_layer_get(ec);
+#endif
if (E_POLICY_SCRSAVER_LAYER != layer)
{
e_client_hook_add(E_CLIENT_HOOK_DEL, _taskbar_hook_client_del, NULL);
E_LIST_HANDLER_APPEND(taskbar_service->events, E_EVENT_CLIENT_ZONE_SET, _taskbar_cb_client_zone_set, taskbar_service);
+#ifdef REFACTOR_DESK_AREA
+ // set taskbar layer
+ layer = e_client_layer_get(ec);
+#else
// set taskbar layer
if (e_config->use_desk_area)
layer = e_client_desk_area_original_layer_get(ec);
else
layer = e_client_layer_get(ec);
+#endif
if (E_POLICY_TASKBAR_LAYER != layer)
{
_volume_del_hook =
e_client_hook_add(E_CLIENT_HOOK_DEL, _volume_hook_client_del, NULL);
+#ifdef REFACTOR_DESK_AREA
+ // set volume layer
+ layer = e_client_layer_get(ec);
+#else
// set volume layer
if (e_config->use_desk_area)
layer = e_client_desk_area_original_layer_get(ec);
else
layer = e_client_layer_get(ec);
+#endif
if (E_POLICY_VOLUME_LAYER != layer)
{