e_desk_area: rename desk_group into desk_area 07/290607/1
authorSooChan Lim <sc1.lim@samsung.com>
Wed, 29 Mar 2023 06:55:46 +0000 (15:55 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Wed, 29 Mar 2023 09:56:02 +0000 (18:56 +0900)
Change-Id: I7b3fc33173435e3c27584c0c88e28b04d75407b1

22 files changed:
src/bin/Makefile.mk
src/bin/e_client.c
src/bin/e_client.h
src/bin/e_config.c
src/bin/e_config.h
src/bin/e_desk.c
src/bin/e_desk.h
src/bin/e_desk_area.c [new file with mode: 0644]
src/bin/e_desk_area.h [new file with mode: 0644]
src/bin/e_desk_group.c [deleted file]
src/bin/e_desk_group.h [deleted file]
src/bin/e_includes.h
src/bin/e_info_client.c
src/bin/e_info_server.c
src/bin/e_info_shared_types.h
src/bin/e_policy_stack.c
src/bin/e_policy_wl.c
src/bin/e_zone.c
src/bin/services/e_service_lockscreen.c
src/bin/services/e_service_quickpanel.c
src/bin/services/e_service_scrsaver.c
src/bin/services/e_service_volume.c

index 58ebb02..a3fcf62 100644 (file)
@@ -38,7 +38,7 @@ src/bin/e_config_data.h \
 src/bin/e_config.h \
 src/bin/e_dbusmenu.h \
 src/bin/e_desk.h \
-src/bin/e_desk_group.h \
+src/bin/e_desk_area.h \
 src/bin/e_dialog.h \
 src/bin/e_dnd.h \
 src/bin/e_dpms.h \
@@ -164,7 +164,7 @@ src/bin/e_config.c \
 src/bin/e_config_data.c \
 src/bin/e_dbusmenu.c \
 src/bin/e_desk.c \
-src/bin/e_desk_group.c \
+src/bin/e_desk_area.c \
 src/bin/e_dialog.c \
 src/bin/e_dpms.c \
 src/bin/e_dnd.c \
index 62cffab..ded50c5 100644 (file)
@@ -1394,9 +1394,9 @@ _e_client_del(E_Client *ec)
 
    ec->transform_core.result.enable = EINA_FALSE;
 
-   e_client_desk_group_set(ec, NULL);
-   e_util_transform_del(ec->desk_group.transform);
-   ec->desk_group.transform = NULL;
+   e_client_desk_area_set(ec, NULL);
+   e_util_transform_del(ec->desk_area.transform);
+   ec->desk_area.transform = NULL;
 
    _e_client_resize_object_del(ec);
 
@@ -2701,12 +2701,12 @@ _e_client_maximize(E_Client *ec, E_Maximize max)
    zx = zy = zw = zh = 0;
    ec->maximize_override = 1;
 
-   if (ec->desk_group.enable && ec->desk_group.desk_group != NULL)
+   if (ec->desk_area.enable && ec->desk_area.desk_area != NULL)
      {
-        desk_x = ec->desk_group.desk_group->x;
-        desk_y = ec->desk_group.desk_group->y;
-        desk_w = ec->desk_group.desk_group->w;
-        desk_h = ec->desk_group.desk_group->h;
+        desk_x = ec->desk_area.desk_area->x;
+        desk_y = ec->desk_area.desk_area->y;
+        desk_w = ec->desk_area.desk_area->w;
+        desk_h = ec->desk_area.desk_area->h;
      }
     else
     {
@@ -5027,16 +5027,16 @@ e_client_desk_set(E_Client *ec, E_Desk *desk)
    _e_client_hook_call(E_CLIENT_HOOK_DESK_SET, ec);
    evas_object_smart_callback_call(ec->frame, "desk_change", ec);
 
-   if (ec->desk->desk_group.enable)
+   if (ec->desk->desk_area.enable)
      {
-        if (!ec->desk_group.desk_group)
+        if (!ec->desk_area.desk_area)
           {
-             E_Desk_Group *edg;
-             edg = e_desk_desk_group_base_get(ec->desk);
-             e_client_desk_group_set(ec, edg);
+             E_Desk_Area *eda;
+             eda = e_desk_desk_area_base_get(ec->desk);
+             e_client_desk_area_set(ec, eda);
           }
 
-        e_client_desk_group_enable_set(ec, EINA_TRUE);
+        e_client_desk_area_enable_set(ec, EINA_TRUE);
      }
 }
 
@@ -6288,10 +6288,10 @@ e_client_maximize(E_Client *ec, E_Maximize max)
         return;
      }
 
-   if (ec->desk_group.enable && ec->desk_group.desk_group != NULL)
+   if (ec->desk_area.enable && ec->desk_area.desk_area != NULL)
      {
-        desk_x = ec->desk_group.desk_group->x;
-        desk_y = ec->desk_group.desk_group->y;
+        desk_x = ec->desk_area.desk_area->x;
+        desk_y = ec->desk_area.desk_area->y;
      }
     else
     {
@@ -8539,16 +8539,16 @@ e_client_layer_set(E_Client *ec,
    if (e_comp_canvas_client_layer_map(layer) == 9999)
      return EINA_FALSE; //invalid layer is not allowed
 
-   if (ec->desk_group.enable)
+   if (ec->desk_area.enable)
      {
-        if (e_client_layer_set_by_desk_group(ec, layer))
+        if (e_client_layer_set_by_desk_area(ec, layer))
           {
              // restack according to desk group rule
-             e_desk_group_ec_rearrange(ec->desk_group.desk_group, ec);
+             e_desk_area_ec_rearrange(ec->desk_area.desk_area, ec);
              return EINA_TRUE;
           }
      }
-   ec->desk_group.layer_backup = layer;
+   ec->desk_area.layer_backup = layer;
 
    evas_object_layer_set(ec->frame, layer);
    if (ec->layer != layer)
@@ -8604,35 +8604,35 @@ e_client_layer_get(E_Client *ec)
 }
 
 static void
-_e_client_desk_group_original_layer_save(E_Client *ec, E_Layer layer)
+_e_client_desk_area_original_layer_save(E_Client *ec, E_Layer layer)
 {
    E_OBJECT_CHECK(ec);
    E_OBJECT_TYPE_CHECK(ec, E_CLIENT_TYPE);
-   ec->desk_group.layer_backup = layer;
+   ec->desk_area.layer_backup = layer;
 }
 
 EINTERN Eina_Bool
-e_client_layer_set_by_desk_group(E_Client *ec, E_Layer layer)
+e_client_layer_set_by_desk_area(E_Client *ec, E_Layer layer)
 {
-   E_Desk_Group *edg;
+   E_Desk_Area *eda;
    E_Layer edg_layer;
    E_Layer org_layer;
 
    if (!ec) return EINA_FALSE;
    if (!ec->frame) return EINA_FALSE;
-   if (!ec->desk_group.enable) return EINA_FALSE;
-   if (!ec->desk_group.desk_group) return EINA_FALSE;
+   if (!ec->desk_area.enable) return EINA_FALSE;
+   if (!ec->desk_area.desk_area) return EINA_FALSE;
 
-   edg = ec->desk_group.desk_group;
+   eda = ec->desk_area.desk_area;
 
    // save original layer
-   _e_client_desk_group_original_layer_save(ec, layer);
+   _e_client_desk_area_original_layer_save(ec, layer);
 
-   // get desk_group layer
-   edg_layer = (E_Layer)e_desk_group_layer_get(edg);
-   org_layer = e_client_desk_group_original_layer_get(ec);
+   // get desk_area layer
+   edg_layer = (E_Layer)e_desk_area_layer_get(eda);
+   org_layer = e_client_desk_area_original_layer_get(ec);
 
-   ELOGF("EDG", "layer_set by desk_group... layer:%d, org_layer:%d, new_layer:%d", ec, layer, org_layer, edg_layer);
+   ELOGF("EDG", "layer_set by desk_area... layer:%d, org_layer:%d, new_layer:%d", ec, layer, org_layer, edg_layer);
    if (org_layer == edg_layer)
      {
         evas_object_raise(ec->frame);
@@ -8648,107 +8648,107 @@ e_client_layer_set_by_desk_group(E_Client *ec, E_Layer layer)
 }
 
 EINTERN void
-e_client_desk_group_original_layer_restore(E_Client *ec)
+e_client_desk_area_original_layer_restore(E_Client *ec)
 {
    if (!ec) return;
 
-   // Do we need to check ec->desk_group.enable?
-   // if ec->desk_group.enable is true, then e_client_layer_set calls
-   // e_desk_group_ec_layer_set(). that's too bad. :(
+   // Do we need to check ec->desk_area.enable?
+   // if ec->desk_area.enable is true, then e_client_layer_set calls
+   // e_desk_area_ec_layer_set(). that's too bad. :(
    // so, we MUST make a policy for ordering of the desk group layer restore
    // and the desk group enable.
-   if (ec->desk_group.enable) return;
-   e_client_layer_set(ec, ec->desk_group.layer_backup);
+   if (ec->desk_area.enable) return;
+   e_client_layer_set(ec, ec->desk_area.layer_backup);
 }
 
 EINTERN E_Layer
-e_client_desk_group_original_layer_get(E_Client *ec)
+e_client_desk_area_original_layer_get(E_Client *ec)
 {
    if (!ec) return E_LAYER_DESKTOP;
 
-   if (ec->desk_group.enable)
-     return ec->desk_group.layer_backup;
+   if (ec->desk_area.enable)
+     return ec->desk_area.layer_backup;
    else
      return ec->layer;
 }
 
 EINTERN Eina_Bool
-e_client_desk_group_client_layer_set(E_Client *ec, E_Desk_Group_Client_Layer edgc_layer)
+e_client_desk_area_client_layer_set(E_Client *ec, E_Desk_Area_Client_Layer edgc_layer)
 {
    E_OBJECT_CHECK_RETURN(ec, EINA_FALSE);
    E_OBJECT_TYPE_CHECK_RETURN(ec, E_CLIENT_TYPE, EINA_FALSE);
-   if ((edgc_layer < E_DESK_GROUP_CLIENT_LAYER_DESKTOP) ||
-       (edgc_layer >= E_DESK_GROUP_CLIENT_LAYER_MAX))
+   if ((edgc_layer < E_DESK_AREA_CLIENT_LAYER_DESKTOP) ||
+       (edgc_layer >= E_DESK_AREA_CLIENT_LAYER_MAX))
      return EINA_FALSE;
 
-   ec->desk_group.edgc_layer = edgc_layer;
+   ec->desk_area.edgc_layer = edgc_layer;
    return EINA_TRUE;
 }
 
-EINTERN E_Desk_Group_Client_Layer
-e_client_desk_group_client_layer_get(E_Client *ec)
+EINTERN E_Desk_Area_Client_Layer
+e_client_desk_area_client_layer_get(E_Client *ec)
 {
-   E_OBJECT_CHECK_RETURN(ec, E_DESK_GROUP_CLIENT_LAYER_DESKTOP);
+   E_OBJECT_CHECK_RETURN(ec, E_DESK_AREA_CLIENT_LAYER_DESKTOP);
 
-   return ec->desk_group.edgc_layer;
+   return ec->desk_area.edgc_layer;
 }
 
 EINTERN Eina_Bool
-e_client_desk_group_enable_set(E_Client *ec, Eina_Bool enable)
+e_client_desk_area_enable_set(E_Client *ec, Eina_Bool enable)
 {
    E_OBJECT_CHECK_RETURN(ec, EINA_FALSE);
    E_OBJECT_TYPE_CHECK_RETURN(ec, E_CLIENT_TYPE, EINA_FALSE);
 
-   ec->desk_group.enable = enable;
+   ec->desk_area.enable = enable;
 
    ELOGF("EDG", "Desk group enable set to %d", ec, enable);
    if (enable)
      {
-        if (!ec->desk_group.transform)
+        if (!ec->desk_area.transform)
           {
-             ec->desk_group.transform = e_util_transform_new();
-             e_util_transform_role_set(ec->desk_group.transform, "desk_group");
+             ec->desk_area.transform = e_util_transform_new();
+             e_util_transform_role_set(ec->desk_area.transform, "desk_area");
           }
      }
    else
      {
-        if (ec->desk_group.transform)
+        if (ec->desk_area.transform)
           {
-             e_util_transform_del(ec->desk_group.transform);
-             ec->desk_group.transform = NULL;
+             e_util_transform_del(ec->desk_area.transform);
+             ec->desk_area.transform = NULL;
           }
      }
 
-   e_desk_group_ec_update(ec->desk_group.desk_group, ec);
+   e_desk_area_ec_update(ec->desk_area.desk_area, ec);
    return EINA_TRUE;
 }
 
 E_API Eina_Bool
-e_client_desk_group_set(E_Client *ec, E_Desk_Group *edg)
+e_client_desk_area_set(E_Client *ec, E_Desk_Area *eda)
 {
-   E_Desk_Group *old_edg;
+   E_Desk_Area *old_edg;
 
    if (!ec) return EINA_FALSE;
 
-#if 0 // if this is removed.. then below if (edg != old_edg) is removed also...
-   if (ec->desk_group.desk_group == edg)
+#if 0 // if this is removed.. then below if (eda != old_edg) is removed also...
+   if (ec->desk_area.desk_area == eda)
      return EINA_TRUE;
 #endif
 
-   ELOGF("EDG", "Desk Group Set (new:%p, old:%p)", ec, edg, ec->desk_group.desk_group);
-   old_edg = ec->desk_group.desk_group;
+   ELOGF("EDG", "Desk Group Set (new:%p, old:%p)", ec, eda, ec->desk_area.desk_area);
+   old_edg = ec->desk_area.desk_area;
    if (old_edg)
-     e_desk_group_ec_remove(old_edg, ec);
+     e_desk_area_ec_remove(old_edg, ec);
 
-   ec->desk_group.desk_group = edg;
-   e_desk_group_ec_add(edg, ec);
+   ec->desk_area.desk_area = eda;
+   e_desk_area_ec_add(eda, ec);
 
-#if 0 // if this is removed.. then above if (ec->desk_group.desk_group == edg) is removed also...
-   if (edg != old_edg)
+#if 0 // if this is removed.. then above if (ec->desk_area.desk_area == eda) is removed also...
+   if (eda != old_edg)
 #endif
      {
-        e_desk_group_ec_update(edg, ec);
-        e_desk_group_ec_rearrange(ec->desk_group.desk_group, ec);
+        e_desk_area_ec_update(eda, ec);
+        e_desk_area_ec_rearrange(ec->desk_area.desk_area, ec);
      }
 
    return EINA_TRUE;
@@ -8797,13 +8797,13 @@ e_client_raise(E_Client *ec)
 {
    if (!ec) return;
 
-   if (ec->desk_group.enable)
+   if (ec->desk_area.enable)
      {
-        E_Desk_Group *edg;
-        edg = ec->desk_group.desk_group;
-        if (edg)
+        E_Desk_Area *eda;
+        eda = ec->desk_area.desk_area;
+        if (eda)
           {
-             e_desk_group_ec_raise(edg, ec);
+             e_desk_area_ec_raise(eda, ec);
              return;
           }
      }
@@ -8915,13 +8915,13 @@ e_client_lower(E_Client *ec)
 {
    if (!ec) return;
 
-   if (ec->desk_group.enable)
+   if (ec->desk_area.enable)
      {
-        E_Desk_Group *edg;
-        edg = ec->desk_group.desk_group;
-        if (edg)
+        E_Desk_Area *eda;
+        eda = ec->desk_area.desk_area;
+        if (eda)
           {
-             e_desk_group_ec_lower(edg, ec);
+             e_desk_area_ec_lower(eda, ec);
              return;
           }
      }
@@ -8940,13 +8940,13 @@ e_client_stack_above(E_Client *ec, E_Client *above)
    if (!above) return;
    if (!above->frame) return;
 
-   if (ec->desk_group.enable)
+   if (ec->desk_area.enable)
      {
-        E_Desk_Group *edg;
-        edg = ec->desk_group.desk_group;
-        if (edg)
+        E_Desk_Area *eda;
+        eda = ec->desk_area.desk_area;
+        if (eda)
           {
-             e_desk_group_ec_stack_above(edg, ec, above);
+             e_desk_area_ec_stack_above(eda, ec, above);
              return;
           }
      }
@@ -8962,13 +8962,13 @@ e_client_stack_below(E_Client *ec, E_Client *below)
    if (!below) return;
    if (!below->frame) return;
 
-   if (ec->desk_group.enable)
+   if (ec->desk_area.enable)
      {
-        E_Desk_Group *edg;
-        edg = ec->desk_group.desk_group;
-        if (edg)
+        E_Desk_Area *eda;
+        eda = ec->desk_area.desk_area;
+        if (eda)
           {
-             e_desk_group_ec_stack_below(edg, ec, below);
+             e_desk_area_ec_stack_below(eda, ec, below);
              return;
           }
      }
index 4a35fa6..2a4eea0 100644 (file)
@@ -1024,11 +1024,11 @@ struct E_Client
    struct
    {
       Eina_Bool     enable;
-      E_Desk_Group *desk_group;
-      E_Desk_Group_Client_Layer edgc_layer; // used by desk_group mode
-      E_Layer       layer_backup; // original layer (used by no desk_group mode)
+      E_Desk_Area *desk_area;
+      E_Desk_Area_Client_Layer edgc_layer; // used by desk_area mode
+      E_Layer       layer_backup; // original layer (used by no desk_area mode)
       E_Util_Transform *transform;
-   } desk_group;
+   } desk_area;
 
    Eina_Bool transient_for_always_on_top;
    Eina_Bool belong_to_parent;
@@ -1290,14 +1290,14 @@ E_API Eina_Bool e_client_layer_set(E_Client *ec, E_Layer layer);
  */
 E_API E_Layer   e_client_layer_get(E_Client *ec);
 
-EINTERN Eina_Bool e_client_layer_set_by_desk_group(E_Client *ec, E_Layer layer);
-EINTERN void e_client_desk_group_original_layer_restore(E_Client *ec);
-EINTERN E_Layer e_client_desk_group_original_layer_get(E_Client *ec);
-EINTERN Eina_Bool e_client_desk_group_client_layer_set(E_Client *ec, E_Desk_Group_Client_Layer edgc_layer);
-EINTERN E_Desk_Group_Client_Layer e_client_desk_group_client_layer_get(E_Client *ec);
-EINTERN Eina_Bool e_client_desk_group_enable_set(E_Client *ec, Eina_Bool enable);
+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 Eina_Bool e_client_desk_area_client_layer_set(E_Client *ec, E_Desk_Area_Client_Layer edgc_layer);
+EINTERN E_Desk_Area_Client_Layer e_client_desk_area_client_layer_get(E_Client *ec);
+EINTERN Eina_Bool e_client_desk_area_enable_set(E_Client *ec, Eina_Bool enable);
 
-E_API Eina_Bool e_client_desk_group_set(E_Client *ec, E_Desk_Group *edg);
+E_API Eina_Bool e_client_desk_area_set(E_Client *ec, E_Desk_Area *eda);
 
 E_API void      e_client_raise(E_Client *ec);
 E_API void      e_client_lower(E_Client *ec);
index 9367185..2e586b3 100644 (file)
@@ -311,7 +311,7 @@ _e_config_edd_init(Eina_Bool old)
    E_CONFIG_VAL(D, T, cursor_configured_output_resolution.h, INT);
    E_CONFIG_VAL(D, T, global_object_not_provide.launch_effect, UCHAR);
    E_CONFIG_VAL(D, T, use_thread_max_cpu, UCHAR);
-   E_CONFIG_VAL(D, T, use_desk_group, UCHAR);
+   E_CONFIG_VAL(D, T, use_desk_area, UCHAR);
    E_CONFIG_VAL(D, T, desk_zoom_effect.enable, UCHAR);
    E_CONFIG_VAL(D, T, desk_zoom_effect.duration, DOUBLE);
    E_CONFIG_VAL(D, T, fake_output_resolution.use, UCHAR);
@@ -573,7 +573,7 @@ e_config_load(void)
    E_CONFIG_LIMIT(e_config->configured_output_resolution.use, 0, 1);
    E_CONFIG_LIMIT(e_config->global_object_not_provide.launch_effect, 0, 1);
    E_CONFIG_LIMIT(e_config->use_thread_max_cpu, 0, 1);
-   E_CONFIG_LIMIT(e_config->use_desk_group, 0, 1);
+   E_CONFIG_LIMIT(e_config->use_desk_area, 0, 1);
    E_CONFIG_LIMIT(e_config->desk_zoom_effect.enable, 0, 1);
    E_CONFIG_LIMIT(e_config->desk_zoom_effect.duration, 0.0, 10.0);
    E_CONFIG_LIMIT(e_config->fake_output_resolution.use, 0, 1);
index de321ee..fd28d0c 100644 (file)
@@ -273,7 +273,7 @@ struct _E_Config
    } global_object_not_provide;
 
    Eina_Bool use_thread_max_cpu; //set cpu count to ecore thread max
-   Eina_Bool use_desk_group;
+   Eina_Bool use_desk_area;
 
    struct
    {
index 9be91d1..fd1ebf0 100644 (file)
@@ -46,9 +46,9 @@ static int _e_desk_hooks_walking = 0;
 
 static Eina_Inlist *_e_desk_hooks[] =
 {
-   [E_DESK_HOOK_DESK_GROUP_ENABLE] = NULL,
-   [E_DESK_HOOK_DESK_GROUP_DISABLE] = NULL,
-   [E_DESK_HOOK_DESK_GROUP_ACTIVE_CHANGE] = NULL,
+   [E_DESK_HOOK_DESK_AREA_ENABLE] = NULL,
+   [E_DESK_HOOK_DESK_AREA_DISABLE] = NULL,
+   [E_DESK_HOOK_DESK_AREA_ACTIVE_CHANGE] = NULL,
 };
 
 static void      _e_desk_free(E_Desk *desk);
@@ -68,7 +68,7 @@ static void      _e_desk_smart_client_del(Evas_Object *obj, E_Client *ec);
 static void      _e_desk_object_zoom(Evas_Object *obj, double zoomx, double zoomy, Evas_Coord cx, Evas_Coord cy);
 static void      _e_desk_client_zoom(E_Client *ec, double zoomx, double zoomy, Evas_Coord cx, Evas_Coord cy);
 
-static Eina_Bool _e_desk_desk_group_base_new(E_Desk *desk);
+static Eina_Bool _e_desk_desk_area_base_new(E_Desk *desk);
 
 static void        _e_desk_hooks_clean(void);
 static Eina_Bool   _e_desk_hook_call(E_Desk_Hook_Point hookpoint, E_Desk *desk);
@@ -205,8 +205,8 @@ e_desk_new(E_Zone *zone, int x, int y)
    if (!ok)
      desk->window_profile = eina_stringshare_ref(e_config->desktop_default_window_profile);
 
-   // new a base e_desk_group
-   _e_desk_desk_group_base_new(desk);
+   // new a base e_desk_area
+   _e_desk_desk_area_base_new(desk);
 
    return desk;
 }
@@ -1448,21 +1448,21 @@ static void
 _e_desk_free(E_Desk *desk)
 {
    Eina_List *l;
-   E_Desk_Group *edg;
+   E_Desk_Area *eda;
 
-   if (e_config->use_desk_group)
+   if (e_config->use_desk_area)
      {
-        for (int i=E_DESK_GROUP_LAYER_COUNT-1; i>=0; i--)
+        for (int i=E_DESK_AREA_LAYER_COUNT-1; i>=0; i--)
           {
-             EINA_LIST_FOREACH(desk->desk_group.list[i], l, edg)
+             EINA_LIST_FOREACH(desk->desk_area.list[i], l, eda)
                {
-                  e_desk_group_del(edg);
+                  e_desk_area_del(eda);
                }
-             eina_list_free(desk->desk_group.list[i]);
-             desk->desk_group.list[i] = NULL;
+             eina_list_free(desk->desk_area.list[i]);
+             desk->desk_area.list[i] = NULL;
           }
-        desk->desk_group.base = NULL;
-        desk->desk_group.active = NULL;
+        desk->desk_area.base = NULL;
+        desk->desk_area.active = NULL;
      }
 
    E_FREE_FUNC(desk->smart_obj, evas_object_del);
@@ -1857,81 +1857,81 @@ _e_desk_client_zoom(E_Client *ec, double zoomx, double zoomy, Evas_Coord cx, Eva
 }
 
 static unsigned int
-_e_desk_desk_group_layer_map(E_Desk_Group_Layer layer)
+_e_desk_desk_area_layer_map(E_Desk_Area_Layer layer)
 {
    switch (layer)
      {
-      case E_DESK_GROUP_LAYER_BACKGROUND: return 0;
-      case E_DESK_GROUP_LAYER_NORMAL_BELOW: return 1;
-      case E_DESK_GROUP_LAYER_NORMAL: return 2;
-      case E_DESK_GROUP_LAYER_NORMAL_ABOVE: return 3;
-      case E_DESK_GROUP_LAYER_NOTIFICATION_LOW: return 4;
-      case E_DESK_GROUP_LAYER_NOTIFICATION_NORMAL: return 5;
-      case E_DESK_GROUP_LAYER_NOTIFICATION_HIGH: return 6;
-      case E_DESK_GROUP_LAYER_NOTIFICATION_TOP: return 7;
-      case E_DESK_GROUP_LAYER_SYSTEM: return 8;
+      case E_DESK_AREA_LAYER_BACKGROUND: return 0;
+      case E_DESK_AREA_LAYER_NORMAL_BELOW: return 1;
+      case E_DESK_AREA_LAYER_NORMAL: return 2;
+      case E_DESK_AREA_LAYER_NORMAL_ABOVE: return 3;
+      case E_DESK_AREA_LAYER_NOTIFICATION_LOW: return 4;
+      case E_DESK_AREA_LAYER_NOTIFICATION_NORMAL: return 5;
+      case E_DESK_AREA_LAYER_NOTIFICATION_HIGH: return 6;
+      case E_DESK_AREA_LAYER_NOTIFICATION_TOP: return 7;
+      case E_DESK_AREA_LAYER_SYSTEM: return 8;
       default: return 0;
      }
 }
 
-E_API E_Desk_Group *
-e_desk_desk_group_add(E_Desk *desk, int x, int y, int w, int h, E_Desk_Group_Layer layer)
+E_API E_Desk_Area *
+e_desk_desk_area_add(E_Desk *desk, int x, int y, int w, int h, E_Desk_Area_Layer layer)
 {
-   E_Desk_Group *edg;
+   E_Desk_Area *eda;
    int id;
    unsigned int list_id;
 
-   if (!e_config->use_desk_group) return NULL;
+   if (!e_config->use_desk_area) return NULL;
 
    E_OBJECT_CHECK_RETURN(desk, NULL);
    E_OBJECT_TYPE_CHECK_RETURN(desk, E_DESK_TYPE, NULL);
 
-   id = desk->desk_group.id;
+   id = desk->desk_area.id;
 
-   edg = e_desk_group_new(desk, id, x, y, w, h, layer);
-   if (!edg)
+   eda = e_desk_area_new(desk, id, x, y, w, h, layer);
+   if (!eda)
      {
         return NULL;
      }
 
-   list_id = _e_desk_desk_group_layer_map(layer);
-   desk->desk_group.list[list_id] = eina_list_prepend(desk->desk_group.list[list_id], edg);
-   desk->desk_group.id++;
+   list_id = _e_desk_desk_area_layer_map(layer);
+   desk->desk_area.list[list_id] = eina_list_prepend(desk->desk_area.list[list_id], eda);
+   desk->desk_area.id++;
 
-   return edg;
+   return eda;
 }
 
 E_API void
-e_desk_desk_group_del(E_Desk *desk, E_Desk_Group *edg)
+e_desk_desk_area_del(E_Desk *desk, E_Desk_Area *eda)
 {
    unsigned int list_id;
 
    E_OBJECT_CHECK(desk);
    E_OBJECT_TYPE_CHECK(desk, E_DESK_TYPE);
 
-   if (!e_config->use_desk_group) return;
+   if (!e_config->use_desk_area) return;
 
-   if (!edg) return;
+   if (!eda) return;
 
-   list_id = _e_desk_desk_group_layer_map(edg->layer);
-   desk->desk_group.list[list_id] = eina_list_remove(desk->desk_group.list[list_id], edg);
+   list_id = _e_desk_desk_area_layer_map(eda->layer);
+   desk->desk_area.list[list_id] = eina_list_remove(desk->desk_area.list[list_id], eda);
 }
 
-E_API E_Desk_Group *
-e_desk_desk_group_get_by_id(E_Desk *desk, int id)
+E_API E_Desk_Area *
+e_desk_desk_area_get_by_id(E_Desk *desk, int id)
 {
-   E_Desk_Group *edg = NULL;
+   E_Desk_Area *eda = NULL;
    Eina_List *l;
 
    E_OBJECT_CHECK_RETURN(desk, NULL);
    E_OBJECT_TYPE_CHECK_RETURN(desk, E_DESK_TYPE, NULL);
 
-   for (int i=0; i<E_DESK_GROUP_LAYER_COUNT; i++)
+   for (int i=0; i<E_DESK_AREA_LAYER_COUNT; i++)
      {
-        EINA_LIST_FOREACH(desk->desk_group.list[i], l, edg)
+        EINA_LIST_FOREACH(desk->desk_area.list[i], l, eda)
           {
-             if (edg->id == id)
-               return edg;
+             if (eda->id == id)
+               return eda;
           }
      }
 
@@ -1939,61 +1939,61 @@ e_desk_desk_group_get_by_id(E_Desk *desk, int id)
 }
 
 static Eina_Bool
-_e_desk_desk_group_base_new(E_Desk *desk)
+_e_desk_desk_area_base_new(E_Desk *desk)
 {
    if (!desk) return EINA_FALSE;
-   if (!e_config->use_desk_group) return EINA_FALSE;
+   if (!e_config->use_desk_area) return EINA_FALSE;
 
-   if (!desk->desk_group.base)
+   if (!desk->desk_area.base)
      {
-        // Add a base e_desk_group
-        desk->desk_group.base = e_desk_desk_group_add(desk, desk->geom.x, desk->geom.y, desk->geom.w, desk->geom.h, E_DESK_GROUP_LAYER_NORMAL);
+        // Add a base e_desk_area
+        desk->desk_area.base = e_desk_desk_area_add(desk, desk->geom.x, desk->geom.y, desk->geom.w, desk->geom.h, E_DESK_AREA_LAYER_NORMAL);
      }
 
-   if (!desk->desk_group.base)
+   if (!desk->desk_area.base)
      return EINA_FALSE;
    else
      return EINA_TRUE;
 }
 
-E_API E_Desk_Group *
-e_desk_desk_group_base_get(E_Desk *desk)
+E_API E_Desk_Area *
+e_desk_desk_area_base_get(E_Desk *desk)
 {
    E_OBJECT_CHECK_RETURN(desk, NULL);
    E_OBJECT_TYPE_CHECK_RETURN(desk, E_DESK_TYPE, NULL);
 
-   if (!e_config->use_desk_group) return NULL;
+   if (!e_config->use_desk_area) return NULL;
 
-   return desk->desk_group.base;
+   return desk->desk_area.base;
 }
 
 EINTERN void
-e_desk_desk_group_active_set(E_Desk *desk, E_Desk_Group *edg)
+e_desk_desk_area_active_set(E_Desk *desk, E_Desk_Area *eda)
 {
    E_OBJECT_CHECK(desk);
    E_OBJECT_TYPE_CHECK(desk, E_DESK_TYPE);
 
-   if (!e_config->use_desk_group) return;
-   if (desk->desk_group.active == edg) return;
+   if (!e_config->use_desk_area) return;
+   if (desk->desk_area.active == eda) return;
 
-   desk->desk_group.active = edg;
+   desk->desk_area.active = eda;
 
-   _e_desk_hook_call(E_DESK_HOOK_DESK_GROUP_ACTIVE_CHANGE, desk);
+   _e_desk_hook_call(E_DESK_HOOK_DESK_AREA_ACTIVE_CHANGE, desk);
 }
 
-E_API E_Desk_Group *
-e_desk_desk_group_active_get(E_Desk *desk)
+E_API E_Desk_Area *
+e_desk_desk_area_active_get(E_Desk *desk)
 {
    E_OBJECT_CHECK_RETURN(desk, NULL);
    E_OBJECT_TYPE_CHECK_RETURN(desk, E_DESK_TYPE, NULL);
 
-   if (!e_config->use_desk_group) return NULL;
+   if (!e_config->use_desk_area) return NULL;
 
-   return desk->desk_group.active;
+   return desk->desk_area.active;
 }
 
 static void
-_e_desk_desk_group_check_ec_in_desk_group(E_Desk *desk)
+_e_desk_desk_area_check_ec_in_desk_area(E_Desk *desk)
 {
    E_Client *ec;
    Eina_List *ec_list = NULL;
@@ -2002,40 +2002,40 @@ _e_desk_desk_group_check_ec_in_desk_group(E_Desk *desk)
      {
         if (ec->desk != desk) continue;
         if (e_object_is_del(E_OBJECT(ec))) continue;
-        if (ec->desk_group.desk_group) continue;
+        if (ec->desk_area.desk_area) continue;
 
         ec_list = eina_list_append(ec_list, ec);
      }
 
    EINA_LIST_FREE(ec_list, ec)
-      e_client_desk_group_set(ec, desk->desk_group.base);
+      e_client_desk_area_set(ec, desk->desk_area.base);
 }
 
 E_API Eina_Bool
-e_desk_desk_group_enable(E_Desk *desk)
+e_desk_desk_area_enable(E_Desk *desk)
 {
-   E_Desk_Group *edg = NULL;
+   E_Desk_Area *eda = NULL;
    Eina_List *l;
 
-   if (!e_config->use_desk_group) return EINA_FALSE;
+   if (!e_config->use_desk_area) return EINA_FALSE;
 
    E_OBJECT_CHECK_RETURN(desk, EINA_FALSE);
    E_OBJECT_TYPE_CHECK_RETURN(desk, E_DESK_TYPE, EINA_FALSE);
 
-   ELOGF("EDG", "Enable Desk_Group...", NULL);
-   if (desk->desk_group.enable) return EINA_TRUE;
-   desk->desk_group.enable = EINA_TRUE;
+   ELOGF("EDG", "Enable Desk_Area...", NULL);
+   if (desk->desk_area.enable) return EINA_TRUE;
+   desk->desk_area.enable = EINA_TRUE;
 
-   _e_desk_hook_call(E_DESK_HOOK_DESK_GROUP_ENABLE, desk);
+   _e_desk_hook_call(E_DESK_HOOK_DESK_AREA_ENABLE, desk);
 
    // check all ec is included in desk group
-   _e_desk_desk_group_check_ec_in_desk_group(desk);
+   _e_desk_desk_area_check_ec_in_desk_area(desk);
 
-   for (int i=0; i<E_DESK_GROUP_LAYER_COUNT; i++)
+   for (int i=0; i<E_DESK_AREA_LAYER_COUNT; i++)
      {
-        EINA_LIST_REVERSE_FOREACH(desk->desk_group.list[i], l, edg)
+        EINA_LIST_REVERSE_FOREACH(desk->desk_area.list[i], l, eda)
           {
-             e_desk_group_enable_set(edg, EINA_TRUE);
+             e_desk_area_enable_set(eda, EINA_TRUE);
           }
      }
 
@@ -2043,121 +2043,121 @@ e_desk_desk_group_enable(E_Desk *desk)
 }
 
 E_API Eina_Bool
-e_desk_desk_group_disable(E_Desk *desk)
+e_desk_desk_area_disable(E_Desk *desk)
 {
-   E_Desk_Group *edg = NULL;
+   E_Desk_Area *eda = NULL;
    Eina_List *l;
 
-   if (!e_config->use_desk_group) return EINA_FALSE;
+   if (!e_config->use_desk_area) return EINA_FALSE;
 
    E_OBJECT_CHECK_RETURN(desk, EINA_FALSE);
    E_OBJECT_TYPE_CHECK_RETURN(desk, E_DESK_TYPE, EINA_FALSE);
 
-   ELOGF("EDG", "Disable Desk_Group...", NULL);
-   if (!desk->desk_group.enable) return EINA_TRUE;
-   desk->desk_group.enable = EINA_FALSE;
+   ELOGF("EDG", "Disable Desk_Area...", NULL);
+   if (!desk->desk_area.enable) return EINA_TRUE;
+   desk->desk_area.enable = EINA_FALSE;
 
-   _e_desk_hook_call(E_DESK_HOOK_DESK_GROUP_DISABLE, desk);
+   _e_desk_hook_call(E_DESK_HOOK_DESK_AREA_DISABLE, desk);
 
-   for (int i=0; i<E_DESK_GROUP_LAYER_COUNT; i++)
+   for (int i=0; i<E_DESK_AREA_LAYER_COUNT; i++)
      {
-        EINA_LIST_REVERSE_FOREACH(desk->desk_group.list[i], l, edg)
+        EINA_LIST_REVERSE_FOREACH(desk->desk_area.list[i], l, eda)
           {
-             e_desk_group_enable_set(edg, EINA_FALSE);
+             e_desk_area_enable_set(eda, EINA_FALSE);
           }
      }
    return EINA_TRUE;
 }
 
 EINTERN void
-e_desk_desk_group_raise(E_Desk *desk, E_Desk_Group *edg)
+e_desk_desk_area_raise(E_Desk *desk, E_Desk_Area *eda)
 {
    unsigned int list_id;
 
-   if (!e_config->use_desk_group) return;
+   if (!e_config->use_desk_area) return;
 
    E_OBJECT_CHECK(desk);
    E_OBJECT_TYPE_CHECK(desk, E_DESK_TYPE);
 
-   if (!edg) return;
+   if (!eda) return;
 
-   ELOGF("EDG", "Raise Desk_Group... edg:%p", NULL, edg);
+   ELOGF("EDG", "Raise Desk_Area... eda:%p", NULL, eda);
 
-   list_id = _e_desk_desk_group_layer_map(edg->layer);
-   desk->desk_group.list[list_id] = eina_list_remove(desk->desk_group.list[list_id], edg);
-   desk->desk_group.list[list_id] = eina_list_prepend(desk->desk_group.list[list_id], edg);
+   list_id = _e_desk_desk_area_layer_map(eda->layer);
+   desk->desk_area.list[list_id] = eina_list_remove(desk->desk_area.list[list_id], eda);
+   desk->desk_area.list[list_id] = eina_list_prepend(desk->desk_area.list[list_id], eda);
 
-   e_desk_group_raise(edg);
+   e_desk_area_raise(eda);
 }
 
 EINTERN void
-e_desk_desk_group_lower(E_Desk *desk, E_Desk_Group *edg)
+e_desk_desk_area_lower(E_Desk *desk, E_Desk_Area *eda)
 {
    unsigned int list_id;
 
-   if (!e_config->use_desk_group) return;
+   if (!e_config->use_desk_area) return;
 
    E_OBJECT_CHECK(desk);
    E_OBJECT_TYPE_CHECK(desk, E_DESK_TYPE);
 
-   if (!edg) return;
+   if (!eda) return;
 
-   ELOGF("EDG", "Lower Desk_Group...", NULL);
+   ELOGF("EDG", "Lower Desk_Area...", NULL);
 
-   list_id = _e_desk_desk_group_layer_map(edg->layer);
-   desk->desk_group.list[list_id] = eina_list_remove(desk->desk_group.list[list_id], edg);
-   desk->desk_group.list[list_id] = eina_list_append(desk->desk_group.list[list_id], edg);
+   list_id = _e_desk_desk_area_layer_map(eda->layer);
+   desk->desk_area.list[list_id] = eina_list_remove(desk->desk_area.list[list_id], eda);
+   desk->desk_area.list[list_id] = eina_list_append(desk->desk_area.list[list_id], eda);
 
-   e_desk_group_lower(edg);
+   e_desk_area_lower(eda);
 }
 
-// get above E_Desk_Group in the same edg layer
-EINTERN E_Desk_Group *
-e_desk_desk_group_above_get(E_Desk *desk, E_Desk_Group *edg)
+// get above E_Desk_Area in the same eda layer
+EINTERN E_Desk_Area *
+e_desk_desk_area_above_get(E_Desk *desk, E_Desk_Area *eda)
 {
    Eina_List *l = NULL;
-   E_Desk_Group *above = NULL;
-   E_Desk_Group *temp = NULL;
+   E_Desk_Area *above = NULL;
+   E_Desk_Area *temp = NULL;
    unsigned int list_id;
 
    if (!desk) return NULL;
-   if (!edg) return NULL;
+   if (!eda) return NULL;
 
-   list_id = _e_desk_desk_group_layer_map(edg->layer);
-   EINA_LIST_FOREACH(desk->desk_group.list[list_id], l, temp)
+   list_id = _e_desk_desk_area_layer_map(eda->layer);
+   EINA_LIST_FOREACH(desk->desk_area.list[list_id], l, temp)
      {
-        if (temp != edg)
+        if (temp != eda)
           above = temp;
         else
           break;
      }
 
-   ELOGF("EDG", "Get Above E_Desk_Group:%p... current:%p", NULL, above, edg);
+   ELOGF("EDG", "Get Above E_Desk_Area:%p... current:%p", NULL, above, eda);
    return above;
 }
 
-// get below E_Desk_Group in the same edg layer
-EINTERN E_Desk_Group *
-e_desk_desk_group_below_get(E_Desk *desk, E_Desk_Group *edg)
+// get below E_Desk_Area in the same eda layer
+EINTERN E_Desk_Area *
+e_desk_desk_area_below_get(E_Desk *desk, E_Desk_Area *eda)
 {
    Eina_List *l = NULL;
-   E_Desk_Group *below = NULL;
-   E_Desk_Group *temp = NULL;
+   E_Desk_Area *below = NULL;
+   E_Desk_Area *temp = NULL;
    unsigned int list_id;
 
    if (!desk) return NULL;
-   if (!edg) return NULL;
+   if (!eda) return NULL;
 
-   list_id = _e_desk_desk_group_layer_map(edg->layer);
-   EINA_LIST_REVERSE_FOREACH(desk->desk_group.list[list_id], l, temp)
+   list_id = _e_desk_desk_area_layer_map(eda->layer);
+   EINA_LIST_REVERSE_FOREACH(desk->desk_area.list[list_id], l, temp)
      {
-        if (temp != edg)
+        if (temp != eda)
           below = temp;
         else
           break;
      }
 
-   ELOGF("EDG", "Get Below E_Desk_Group:%p... current:%p", NULL, below, edg);
+   ELOGF("EDG", "Get Below E_Desk_Area:%p... current:%p", NULL, below, eda);
    return below;
 }
 
@@ -2229,19 +2229,19 @@ e_desk_hook_del(E_Desk_Hook * dh)
 }
 
 EINTERN void
-e_desk_desk_group_info_print(E_Desk *desk)
+e_desk_desk_area_info_print(E_Desk *desk)
 {
-   E_Desk_Group *edg = NULL;
+   E_Desk_Area *eda = NULL;
    Eina_List *l;
 
    E_OBJECT_CHECK(desk);
    E_OBJECT_TYPE_CHECK(desk, E_DESK_TYPE);
 
-   for (int i=E_DESK_GROUP_LAYER_COUNT-1; i>=0; i--)
+   for (int i=E_DESK_AREA_LAYER_COUNT-1; i>=0; i--)
      {
-        EINA_LIST_FOREACH(desk->desk_group.list[i], l, edg)
+        EINA_LIST_FOREACH(desk->desk_area.list[i], l, eda)
           {
-             e_desk_group_info_print(edg);
+             e_desk_area_info_print(eda);
           }
      }
 }
@@ -2257,15 +2257,15 @@ static void
 _e_desk_splitscreen_region_cb_assign_appid(struct wl_client *client,
     struct wl_resource *resource, const char *appid)
 {
-   E_Desk_Group *edg;
+   E_Desk_Area *eda;
    char *appid_tmp;
 
-   if (!(edg = wl_resource_get_user_data(resource))) return;
+   if (!(eda = wl_resource_get_user_data(resource))) return;
 
    appid_tmp = strdup(appid);
 
-   // call the E_DESK_GROUP_HOOK_ASSIGN_APPID hook
-   if (!e_desk_group_hook_call(edg, E_DESK_GROUP_HOOK_SET_APPID, (void *)appid_tmp))
+   // call the E_DESK_AREA_HOOK_ASSIGN_APPID hook
+   if (!e_desk_area_hook_call(eda, E_DESK_AREA_HOOK_SET_APPID, (void *)appid_tmp))
      {
        ERR("e_desk_zoom_set: fail get eout");
        return;
@@ -2283,12 +2283,12 @@ static void
 _e_desk_splitscreen_region_cb_resource_destroy(struct wl_resource *resource)
 {
    E_Desk *desk;
-   E_Desk_Group *edg;
+   E_Desk_Area *eda;
 
-   if (!(edg = wl_resource_get_user_data(resource))) return;
-   if (!edg->desk) return;
+   if (!(eda = wl_resource_get_user_data(resource))) return;
+   if (!eda->desk) return;
 
-   desk = edg->desk;
+   desk = eda->desk;
 
    desk->ss_region_resources =
           eina_list_remove(desk->ss_region_resources, resource);
@@ -2298,7 +2298,7 @@ EINTERN Eina_Bool
 e_desk_splitscreen_regions_all_generate(E_Desk *desk, struct wl_client *client,
       struct wl_resource *ss_res, uint32_t id)
 {
-   E_Desk_Group *edg;
+   E_Desk_Area *eda;
    struct wl_resource *ss_region_res;
    Eina_List *l;
    int i;
@@ -2306,13 +2306,13 @@ e_desk_splitscreen_regions_all_generate(E_Desk *desk, struct wl_client *client,
    E_OBJECT_CHECK_RETURN(desk, EINA_FALSE);
    E_OBJECT_TYPE_CHECK_RETURN(desk, E_DESK_TYPE, EINA_FALSE);
 
-   for (i = (E_DESK_GROUP_LAYER_COUNT - 1); i >= 0; i--)
+   for (i = (E_DESK_AREA_LAYER_COUNT - 1); i >= 0; i--)
      {
-        EINA_LIST_FOREACH(desk->desk_group.list[i], l, edg)
+        EINA_LIST_FOREACH(desk->desk_area.list[i], l, eda)
           {
-            if (edg->name == NULL)
+            if (eda->name == NULL)
                {
-                  // The edg->name can be Ientification of the desk group.
+                  // The eda->name can be Ientification of the desk group.
                   continue;
                }
              ss_region_res = wl_resource_create(client,
@@ -2324,7 +2324,7 @@ e_desk_splitscreen_regions_all_generate(E_Desk *desk, struct wl_client *client,
                }
 
                wl_resource_set_implementation(ss_region_res,
-                           &_e_desk_splitscreen_region_interface, edg,
+                           &_e_desk_splitscreen_region_interface, eda,
                            _e_desk_splitscreen_region_cb_resource_destroy);
 
                desk->ss_region_resources = eina_list_append(
@@ -2334,10 +2334,10 @@ e_desk_splitscreen_regions_all_generate(E_Desk *desk, struct wl_client *client,
               wtz_splitscreen_send_region(ss_res, ss_region_res);
 
               // send the name of the split_screen_region
-              wtz_splitscreen_region_send_name(ss_region_res, edg->name);
+              wtz_splitscreen_region_send_name(ss_region_res, eda->name);
 
               // send the geometry of the split_screen_region
-              wtz_splitscreen_region_send_geometry(ss_region_res, edg->x, edg->y, edg->w, edg->h);
+              wtz_splitscreen_region_send_geometry(ss_region_res, eda->x, eda->y, eda->w, eda->h);
           }
      }
 
index 3bb62aa..8890b67 100644 (file)
@@ -14,19 +14,19 @@ typedef struct _E_Event_Desk_Geometry_Change E_Event_Desk_Geometry_Change;
 
 typedef void (*E_Desk_Flip_Cb)(void *data, E_Desk *desk, int dx, int dy, Eina_Bool show);
 
-typedef enum _E_Desk_Group_Layer
+typedef enum _E_Desk_Area_Layer
 {
-   E_DESK_GROUP_LAYER_BACKGROUND          = 0,     //E_LAYER_DESKTOP
-   E_DESK_GROUP_LAYER_NORMAL_BELOW        = 150,   //E_LAYER_CLIENT_BELOW
-   E_DESK_GROUP_LAYER_NORMAL              = 200,   //E_LAYER_CLIENT_NORMAL,
-   E_DESK_GROUP_LAYER_NORMAL_ABOVE        = 250,   //E_LAYER_CLIENT_ABOVE,
-   E_DESK_GROUP_LAYER_NOTIFICATION_LOW    = 650,   //E_LAYER_CLIENT_NOTIFICATION_LOW,
-   E_DESK_GROUP_LAYER_NOTIFICATION_NORMAL = 700,   //E_LAYER_CLIENT_NOTIFICATION_NORMAL,
-   E_DESK_GROUP_LAYER_NOTIFICATION_HIGH   = 750,   //E_LAYER_CLIENT_NOTIFICATION_HIGH,
-   E_DESK_GROUP_LAYER_NOTIFICATION_TOP    = 800,   //E_LAYER_CLIENT_NOTIFICATION_TOP,
-   E_DESK_GROUP_LAYER_SYSTEM              = 900,   //E_LAYER_CLIENT_ALERT,
-} E_Desk_Group_Layer;
-#define E_DESK_GROUP_LAYER_COUNT 9
+   E_DESK_AREA_LAYER_BACKGROUND          = 0,     //E_LAYER_DESKTOP
+   E_DESK_AREA_LAYER_NORMAL_BELOW        = 150,   //E_LAYER_CLIENT_BELOW
+   E_DESK_AREA_LAYER_NORMAL              = 200,   //E_LAYER_CLIENT_NORMAL,
+   E_DESK_AREA_LAYER_NORMAL_ABOVE        = 250,   //E_LAYER_CLIENT_ABOVE,
+   E_DESK_AREA_LAYER_NOTIFICATION_LOW    = 650,   //E_LAYER_CLIENT_NOTIFICATION_LOW,
+   E_DESK_AREA_LAYER_NOTIFICATION_NORMAL = 700,   //E_LAYER_CLIENT_NOTIFICATION_NORMAL,
+   E_DESK_AREA_LAYER_NOTIFICATION_HIGH   = 750,   //E_LAYER_CLIENT_NOTIFICATION_HIGH,
+   E_DESK_AREA_LAYER_NOTIFICATION_TOP    = 800,   //E_LAYER_CLIENT_NOTIFICATION_TOP,
+   E_DESK_AREA_LAYER_SYSTEM              = 900,   //E_LAYER_CLIENT_ALERT,
+} E_Desk_Area_Layer;
+#define E_DESK_AREA_LAYER_COUNT 9
 
 #else
 #ifndef E_DESK_H
@@ -39,9 +39,9 @@ typedef struct _E_Desk_Hook E_Desk_Hook;
 
 typedef enum _E_Desk_Hook_Point
 {
-   E_DESK_HOOK_DESK_GROUP_ENABLE,
-   E_DESK_HOOK_DESK_GROUP_DISABLE,
-   E_DESK_HOOK_DESK_GROUP_ACTIVE_CHANGE,
+   E_DESK_HOOK_DESK_AREA_ENABLE,
+   E_DESK_HOOK_DESK_AREA_DISABLE,
+   E_DESK_HOOK_DESK_AREA_ACTIVE_CHANGE,
    E_DESK_HOOK_LAST
 } E_Desk_Hook_Point;
 
@@ -88,10 +88,10 @@ struct _E_Desk
    {
       Eina_Bool         enable;
       int               id;
-      Eina_List        *list[E_DESK_GROUP_LAYER_COUNT];
-      E_Desk_Group     *base;
-      E_Desk_Group     *active;
-   } desk_group;
+      Eina_List        *list[E_DESK_AREA_LAYER_COUNT];
+      E_Desk_Area     *base;
+      E_Desk_Area     *active;
+   } desk_area;
 
    Eina_List           *iconified_list;
    Eina_List           *ss_region_resources; // splitscreen_region resourses
@@ -155,23 +155,23 @@ E_API Eina_Bool    e_desk_client_zoom_skip_unset(E_Desk *desk, E_Client *ec);
 
 EINTERN void       e_desk_client_zoom_apply(E_Desk *desk, E_Client *ec);
 
-E_API E_Desk_Group *e_desk_desk_group_add(E_Desk *desk, int x, int y, int w, int h, E_Desk_Group_Layer layer);
-E_API void          e_desk_desk_group_del(E_Desk *desk, E_Desk_Group *edg);
-E_API E_Desk_Group *e_desk_desk_group_get_by_id(E_Desk *desk, int id);
-E_API E_Desk_Group *e_desk_desk_group_base_get(E_Desk *desk);
-EINTERN void        e_desk_desk_group_active_set(E_Desk *desk, E_Desk_Group *edg);
-E_API E_Desk_Group *e_desk_desk_group_active_get(E_Desk *desk);
-E_API Eina_Bool     e_desk_desk_group_enable(E_Desk *desk);
-E_API Eina_Bool     e_desk_desk_group_disable(E_Desk *desk);
-EINTERN void        e_desk_desk_group_raise(E_Desk *desk, E_Desk_Group *edg);
-EINTERN void        e_desk_desk_group_lower(E_Desk *desk, E_Desk_Group *edg);
-EINTERN E_Desk_Group *e_desk_desk_group_above_get(E_Desk *desk, E_Desk_Group *edg);
-EINTERN E_Desk_Group *e_desk_desk_group_below_get(E_Desk *desk, E_Desk_Group *edg);
+E_API E_Desk_Area *e_desk_desk_area_add(E_Desk *desk, int x, int y, int w, int h, E_Desk_Area_Layer layer);
+E_API void          e_desk_desk_area_del(E_Desk *desk, E_Desk_Area *eda);
+E_API E_Desk_Area *e_desk_desk_area_get_by_id(E_Desk *desk, int id);
+E_API 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);
+E_API E_Desk_Area *e_desk_desk_area_active_get(E_Desk *desk);
+E_API Eina_Bool     e_desk_desk_area_enable(E_Desk *desk);
+E_API Eina_Bool     e_desk_desk_area_disable(E_Desk *desk);
+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);
+EINTERN E_Desk_Area *e_desk_desk_area_below_get(E_Desk *desk, E_Desk_Area *eda);
 
 E_API E_Desk_Hook *e_desk_hook_add(E_Desk_Hook_Point hookpoint, E_Desk_Hook_Cb func, const void *data);
 E_API void e_desk_hook_del(E_Desk_Hook *dh);
 
-EINTERN void        e_desk_desk_group_info_print(E_Desk *desk);
+EINTERN void        e_desk_desk_area_info_print(E_Desk *desk);
 EINTERN Eina_Bool   e_desk_zoom_is_animating(E_Desk *desk);
 
 E_API void e_desk_visible_client_iconify_all(E_Desk *desk);
diff --git a/src/bin/e_desk_area.c b/src/bin/e_desk_area.c
new file mode 100644 (file)
index 0000000..b6f997b
--- /dev/null
@@ -0,0 +1,1067 @@
+#include "e.h"
+
+static int _e_desk_area_hooks_delete = 0;
+static int _e_desk_area_hooks_walking = 0;
+
+static Eina_Inlist *_e_desk_area_hooks[] =
+{
+   [E_DESK_AREA_HOOK_SET_APPID] = NULL,
+};
+
+struct _E_Desk_Area_Hook
+{
+   EINA_INLIST;
+   E_Desk_Area_Hook_Point hookpoint;
+   E_Desk_Area_Hook_Cb    func;
+   void                   *data;
+   unsigned char           delete_me : 1;
+};
+
+static void        _e_desk_area_hooks_clean(void);
+static Eina_Bool   _e_desk_area_hook_call(E_Desk_Area_Hook_Point hookpoint, E_Desk_Area *desk_area, void *appid);
+
+static Eina_Bool
+_check_desk_area_client_layer_validation(E_Desk_Area_Client_Layer edgc_layer)
+{
+   if ((edgc_layer >= E_DESK_AREA_CLIENT_LAYER_DESKTOP) &&
+       (edgc_layer < E_DESK_AREA_CLIENT_LAYER_MAX))
+     return EINA_TRUE;
+   else
+     return EINA_FALSE;
+}
+
+static void
+_e_desk_area_ec_prepend(E_Desk_Area *eda, E_Client *ec)
+{
+   E_Desk_Area_Client_Layer edgc_layer;
+
+   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);
+   eda->ec_lists[edgc_layer] = eina_list_prepend(eda->ec_lists[edgc_layer], ec);
+
+   e_client_desk_area_client_layer_set(ec, edgc_layer);
+}
+
+static void
+_e_desk_area_ec_append(E_Desk_Area *eda, E_Client *ec)
+{
+   E_Desk_Area_Client_Layer edgc_layer;
+
+   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);
+   eda->ec_lists[edgc_layer] = eina_list_append(eda->ec_lists[edgc_layer], ec);
+
+   e_client_desk_area_client_layer_set(ec, edgc_layer);
+}
+
+static void
+_e_desk_area_ec_prepend_relative(E_Desk_Area *eda, E_Client *ec, E_Client *above)
+{
+   E_Desk_Area_Client_Layer edgc_layer;
+   E_Desk_Area_Client_Layer above_edgc_layer;
+
+   // update eda's ec_list order
+   edgc_layer = e_client_desk_area_client_layer_get(ec);
+   if (!_check_desk_area_client_layer_validation(edgc_layer)) return;
+   above_edgc_layer = e_client_desk_area_client_layer_get(above);
+   if (!_check_desk_area_client_layer_validation(above_edgc_layer)) return;
+
+   ELOGF("EDG", "STACK_ABOVE... eda:%p. layer:%d, above(win:%zx, ec:%p, layer:%d)", ec, eda, edgc_layer, e_client_util_win_get(above), above, above_edgc_layer);
+
+   if (edgc_layer == above_edgc_layer)
+     {
+        eda->ec_lists[edgc_layer] = eina_list_remove(eda->ec_lists[edgc_layer], ec);
+        eda->ec_lists[edgc_layer] = eina_list_prepend_relative(eda->ec_lists[edgc_layer], ec, above);
+     }
+   else
+     {
+        eda->ec_lists[edgc_layer] = eina_list_remove(eda->ec_lists[edgc_layer], ec);
+        eda->ec_lists[above_edgc_layer] = eina_list_prepend_relative(eda->ec_lists[above_edgc_layer], ec, above);
+     }
+
+   e_client_desk_area_client_layer_set(ec, above_edgc_layer);
+}
+
+static void
+_e_desk_area_ec_append_relative(E_Desk_Area *eda, E_Client *ec, E_Client *below)
+{
+   E_Desk_Area_Client_Layer edgc_layer;
+   E_Desk_Area_Client_Layer below_edgc_layer;
+
+   // update eda's ec_list order
+   edgc_layer = e_client_desk_area_client_layer_get(ec);
+   if (!_check_desk_area_client_layer_validation(edgc_layer)) return;
+   below_edgc_layer = e_client_desk_area_client_layer_get(below);
+   if (!_check_desk_area_client_layer_validation(below_edgc_layer)) return;
+
+   ELOGF("EDG", "STACK_BELOW... eda:%p. layer:%d, below(win:%zx, ec:%p, layer:%d)", ec, eda, edgc_layer, e_client_util_win_get(below), below, below_edgc_layer);
+
+   if (edgc_layer == below_edgc_layer)
+     {
+        eda->ec_lists[edgc_layer] = eina_list_remove(eda->ec_lists[edgc_layer], ec);
+        eda->ec_lists[edgc_layer] = eina_list_append_relative(eda->ec_lists[edgc_layer], ec, below);
+     }
+   else
+     {
+        eda->ec_lists[edgc_layer] = eina_list_remove(eda->ec_lists[edgc_layer], ec);
+        eda->ec_lists[below_edgc_layer] = eina_list_append_relative(eda->ec_lists[below_edgc_layer], ec, below);
+     }
+
+   e_client_desk_area_client_layer_set(ec, below_edgc_layer);
+}
+
+static void
+_e_desk_geometry_info_set(E_Desk_Area *eda, int x, int y, int w, int h)
+{
+   E_Desk *desk;
+
+   if (!eda) return;
+   if (!eda->desk) return;
+
+   desk = eda->desk;
+
+   eda->x = x;
+   eda->y = y;
+   eda->w = w;
+   eda->h = h;
+
+   eda->scale_w = (double)w / (double)desk->geom.w;
+   eda->scale_h = (double)h / (double)desk->geom.h;
+}
+
+static void
+_e_desk_area_active_change(E_Desk_Area *eda, E_Desk *desk)
+{
+   E_Desk_Area *prev_active_edg;
+
+   if (!desk) return;
+
+   prev_active_edg = e_desk_desk_area_active_get(desk);
+   if (prev_active_edg == eda) return;
+
+   // 1. reset current active eda info
+   if (prev_active_edg)
+     prev_active_edg->active = EINA_FALSE;
+
+   // 2. set new active eda info
+   if (eda)
+     {
+        eda->active = EINA_TRUE;
+        e_desk_desk_area_active_set(desk, eda);
+     }
+   else
+     {
+        e_desk_desk_area_active_set(desk, NULL);
+     }
+}
+
+static void
+_e_desk_area_cb_hook_subsurface_create(void *data, E_Client *ec)
+{
+   EINA_SAFETY_ON_NULL_RETURN(ec);
+
+   if (ec->desk_area.transform)
+     {
+        e_client_transform_core_remove(ec, ec->desk_area.transform);
+     }
+}
+
+EINTERN int
+e_desk_area_init(void)
+{
+   return 1;
+}
+
+EINTERN int
+e_desk_area_shutdown(void)
+{
+   return 1;
+}
+
+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)
+{
+   E_Desk_Area *eda;
+
+   E_OBJECT_CHECK_RETURN(desk, NULL);
+   E_OBJECT_TYPE_CHECK_RETURN(desk, E_DESK_TYPE, NULL);
+
+   eda = E_NEW(E_Desk_Area, 1);
+   if (!eda) return NULL;
+
+   eda->desk = desk;
+   eda->id = id;
+
+   _e_desk_geometry_info_set(eda, x, y, w, h);
+
+   eda->layer = layer;
+
+   eda->hook_subsurf_create = e_comp_wl_hook_add(E_COMP_WL_HOOK_SUBSURFACE_CREATE,
+                                                 _e_desk_area_cb_hook_subsurface_create,
+                                                 NULL);
+
+   return eda;
+}
+
+EINTERN void
+e_desk_area_del(E_Desk_Area *eda)
+{
+   if (!eda) return;
+
+   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);
+
+   E_FREE_FUNC(eda->hook_subsurf_create, e_comp_wl_hook_del);
+
+   E_FREE(eda);
+}
+
+void _e_desk_area_ec_geometry_apply(E_Desk_Area *eda, E_Client *ec)
+{
+   E_Maximize max;
+   E_Util_Transform *transform;
+
+   if (e_comp_wl_subsurface_check(ec))
+     return;
+
+   transform = ec->desk_area.transform;
+
+   if (eda->transform_enabled)
+     {
+        if (!transform) return;
+
+        e_util_transform_move(transform, eda->x, eda->y, 0);
+        e_util_transform_scale(transform, eda->scale_w, eda->scale_h, 1.0);
+        e_client_transform_core_add(ec, transform);
+
+        e_client_transform_core_update(ec);
+     }
+   else
+     {
+        if (transform)
+          {
+            e_util_transform_move(transform, 0, 0, 0);
+            e_util_transform_scale(transform, 1.0, 1.0, 1.0);
+            e_client_transform_core_remove(ec, transform);
+
+            e_client_transform_core_update(ec);
+          }
+
+        max = ec->maximized;
+        ec->maximized = E_MAXIMIZE_NONE;
+        e_client_maximize(ec, max);
+     }
+}
+
+void _e_desk_area_ec_geometry_restore(E_Desk_Area *eda, E_Client *ec)
+{
+   e_client_transform_core_update(ec);
+}
+
+void _e_desk_area_enable(E_Desk_Area *eda)
+{
+   int i;
+   E_Client *ec;
+   Eina_List *l;
+   Eina_List *list;
+
+   if (!eda) return;
+
+   for (i=0; i<E_DESK_AREA_CLIENT_LAYER_MAX; i++)
+     {
+        list = eina_list_clone(eda->ec_lists[i]);
+        EINA_LIST_REVERSE_FOREACH(list, l, ec)
+          {
+             e_client_desk_area_enable_set(ec, EINA_TRUE);
+          }
+        eina_list_free(list);
+        list = NULL;
+     }
+}
+
+void _e_desk_area_disable(E_Desk_Area *eda)
+{
+   int i;
+   E_Client *ec;
+   Eina_List *l = NULL;
+   Eina_List *list = NULL;
+
+   for (i=0; i<E_DESK_AREA_CLIENT_LAYER_MAX; i++)
+     {
+        list = eina_list_clone(eda->ec_lists[i]);
+        EINA_LIST_REVERSE_FOREACH(list, l, ec)
+          {
+             // unset ec's desk_area enable flag
+             e_client_desk_area_enable_set(ec, EINA_FALSE);
+             // restore original ec->layer
+             e_client_desk_area_original_layer_restore(ec);
+             // restore ec's original geometry (changing real geometry or using transform)
+             _e_desk_area_ec_geometry_restore(eda, ec);
+
+             e_client_desk_area_set(ec, NULL);
+          }
+        eina_list_free(list);
+        list = NULL;
+
+        eina_list_free(eda->ec_lists[i]);
+        eda->ec_lists[i] = NULL;
+     }
+}
+
+EINTERN Eina_Bool
+e_desk_area_enable_set(E_Desk_Area *eda, Eina_Bool enable)
+{
+   if (!eda) return EINA_FALSE;
+
+   eda->enable = enable;
+   if (enable)
+     {
+        _e_desk_area_enable(eda);
+     }
+   else
+     {
+        _e_desk_area_disable(eda);
+     }
+
+   return EINA_TRUE;
+}
+
+E_API Eina_Bool
+e_desk_area_geometry_set(E_Desk_Area *eda, int x, int y, int w, int h)
+{
+   if (!eda) return EINA_FALSE;
+
+   _e_desk_geometry_info_set(eda, x, y, w, h);
+
+   return EINA_TRUE;
+}
+
+E_API Eina_Bool
+e_desk_area_geometry_get(E_Desk_Area *eda, int *x, int *y, int *w, int *h)
+{
+   if (!eda) return EINA_FALSE;
+
+   if (x) *x = eda->x;
+   if (y) *y = eda->y;
+   if (w) *w = eda->w;
+   if (h) *h = eda->h;
+
+   return EINA_TRUE;
+}
+
+EINTERN Eina_Bool
+e_desk_area_layer_set(E_Desk_Area *eda, E_Desk_Area_Layer layer)
+{
+   if (!eda) return EINA_FALSE;
+
+   eda->layer = layer;
+   return EINA_TRUE;
+}
+
+E_API E_Desk_Area_Layer
+e_desk_area_layer_get(E_Desk_Area *eda)
+{
+   if (!eda) return E_DESK_AREA_LAYER_NORMAL;
+
+   return eda->layer;
+}
+
+E_API void
+e_desk_area_activate(E_Desk_Area *eda)
+{
+   if (!eda) return;
+   if (!eda->desk) return;
+
+   e_desk_area_raise(eda);
+   _e_desk_area_active_change(eda, eda->desk);
+}
+
+E_API Eina_Bool
+e_desk_area_is_activate(E_Desk_Area *eda)
+{
+   if (!eda) return EINA_FALSE;
+   return eda->active;
+}
+
+E_API void
+e_desk_area_raise(E_Desk_Area *eda)
+{
+   int i;
+   E_Client *ec;
+   Eina_List *l = NULL;
+   Eina_List *ll = NULL;
+
+   if (!eda) return;
+
+   for (i=0; i<E_DESK_AREA_CLIENT_LAYER_MAX; i++)
+     {
+        EINA_LIST_REVERSE_FOREACH_SAFE(eda->ec_lists[i], l, ll, ec)
+          {
+             evas_object_raise(ec->frame);
+          }
+     }
+}
+
+E_API void
+e_desk_area_lower(E_Desk_Area *eda)
+{
+   int i;
+   E_Client *ec;
+   Eina_List *l = NULL;
+   Eina_List *ll = NULL;
+
+   if (!eda) return;
+
+   for (i=E_DESK_AREA_CLIENT_LAYER_MAX-1; i>=0; i--)
+     {
+        //EINA_LIST_FOREACH(eda->ec_lists[i], l, ec)
+        EINA_LIST_FOREACH_SAFE(eda->ec_lists[i], l, ll, ec)
+          {
+             evas_object_lower(ec->frame);
+          }
+     }
+}
+
+
+static E_Desk_Area_Client_Layer
+_e_desk_area_client_layer_convert_from_layer(E_Layer layer)
+{
+   E_Desk_Area_Client_Layer edg_layer;
+
+   if (layer <= E_LAYER_CLIENT_DESKTOP)
+     edg_layer = E_DESK_AREA_CLIENT_LAYER_DESKTOP;
+   else if (layer <= E_LAYER_CLIENT_BELOW)
+     edg_layer = E_DESK_AREA_CLIENT_LAYER_BELOW;
+   else if (layer <= E_LAYER_CLIENT_NORMAL)
+     edg_layer = E_DESK_AREA_CLIENT_LAYER_NORMAL;
+   else if (layer <= E_LAYER_CLIENT_ABOVE)
+     edg_layer = E_DESK_AREA_CLIENT_LAYER_ABOVE;
+   else if (layer <= E_LAYER_CLIENT_NOTIFICATION_LOW)
+     edg_layer = E_DESK_AREA_CLIENT_LAYER_NOTIFICATION_LOW;
+   else if (layer <= E_LAYER_CLIENT_NOTIFICATION_NORMAL)
+     edg_layer = E_DESK_AREA_CLIENT_LAYER_NOTIFICATION_NORMAL;
+   else if (layer <= E_LAYER_CLIENT_NOTIFICATION_HIGH)
+     edg_layer = E_DESK_AREA_CLIENT_LAYER_NOTIFICATION_HIGH;
+   else if (layer <= E_LAYER_CLIENT_NOTIFICATION_TOP)
+     edg_layer = E_DESK_AREA_CLIENT_LAYER_NOTIFICATION_TOP;
+   else
+     edg_layer = E_DESK_AREA_CLIENT_LAYER_ALERT;
+
+   return edg_layer;
+}
+
+E_API Eina_Bool
+e_desk_area_ec_add(E_Desk_Area *eda, E_Client *ec)
+{
+   E_Desk_Area_Client_Layer edgc_layer;
+   E_Layer layer;
+
+   if (!eda) return EINA_FALSE;
+   if (!ec) return EINA_FALSE;
+
+
+   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);
+
+   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;
+
+   if (!eda) return;
+   if (!ec) return;
+
+   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);
+}
+
+static E_Client *
+_find_above_ec_in_same_edgc_layer(E_Desk_Area *eda, E_Client *ec)
+{
+   Eina_List *l;
+   E_Client *above = NULL;
+   E_Client *temp = NULL;
+   E_Desk_Area_Client_Layer edgc_layer;
+   Eina_Bool find = EINA_FALSE;
+
+   edgc_layer = e_client_desk_area_client_layer_get(ec);
+   if (!_check_desk_area_client_layer_validation(edgc_layer)) return NULL;
+
+   EINA_LIST_REVERSE_FOREACH(eda->ec_lists[edgc_layer], l, temp)
+     {
+        if (find)
+          {
+             above = temp;
+             break;
+          }
+
+        if (temp == ec)
+          {
+             find = EINA_TRUE;
+          }
+     }
+
+   // TODO: do we need check below->frame???
+
+   return above;
+}
+
+static E_Client *
+_find_bottom_ec_in_above_edgc_layer(E_Desk_Area *eda, E_Client *ec)
+{
+   Eina_List *l;
+   E_Client *bottom = NULL;
+   E_Desk_Area_Client_Layer edgc_layer;
+   int i;
+
+   edgc_layer = e_client_desk_area_client_layer_get(ec);
+   if (!_check_desk_area_client_layer_validation(edgc_layer)) return NULL;
+
+   for (i = edgc_layer+1; i < E_DESK_AREA_CLIENT_LAYER_MAX; i++)
+     {
+        EINA_LIST_REVERSE_FOREACH(eda->ec_lists[i], l, bottom)
+          {
+             // TODO: do we need check below->frame???
+             if (bottom)
+               return bottom;
+          }
+     }
+
+   return NULL;
+}
+
+static E_Client *
+_find_bottom_ec_in_above_edg(E_Desk_Area *eda)
+{
+   E_Desk_Area *above_edg = NULL;
+   E_Client *bottom = NULL;
+   Eina_List *l;
+   int i;
+
+   above_edg = e_desk_desk_area_above_get(eda->desk, eda);
+   while (above_edg)
+     {
+        for (i=E_DESK_AREA_CLIENT_LAYER_DESKTOP; i<E_DESK_AREA_CLIENT_LAYER_MAX; i++)
+          {
+             EINA_LIST_REVERSE_FOREACH(above_edg->ec_lists[i], l, bottom)
+               {
+                  if (bottom)
+                    goto find_bottom;
+               }
+          }
+
+        bottom = NULL;
+        above_edg = e_desk_desk_area_above_get(above_edg->desk, above_edg);
+     }
+
+find_bottom:
+   return bottom;
+}
+
+static E_Client *
+_find_below_ec_in_same_edgc_layer(E_Desk_Area *eda, E_Client *ec)
+{
+   Eina_List *l;
+   E_Client *below = NULL;
+   E_Client *temp = NULL;
+   E_Desk_Area_Client_Layer edgc_layer;
+   Eina_Bool find = EINA_FALSE;
+
+   edgc_layer = e_client_desk_area_client_layer_get(ec);
+   if (!_check_desk_area_client_layer_validation(edgc_layer)) return NULL;
+
+   EINA_LIST_FOREACH(eda->ec_lists[edgc_layer], l, temp)
+     {
+        if (find)
+          {
+             below = temp;
+             break;
+          }
+
+        if (temp == ec)
+          {
+             find = EINA_TRUE;
+          }
+     }
+
+   // TODO: do we need check below->frame???
+
+   return below;
+}
+
+static E_Client *
+_find_top_ec_in_below_edgc_layer(E_Desk_Area *eda, E_Client *ec)
+{
+   Eina_List *l;
+   E_Client *top = NULL;
+   E_Desk_Area_Client_Layer edgc_layer;
+   int i;
+
+   edgc_layer = e_client_desk_area_client_layer_get(ec);
+   if (!_check_desk_area_client_layer_validation(edgc_layer)) return NULL;
+
+   for (i = edgc_layer-1; i >= E_DESK_AREA_CLIENT_LAYER_DESKTOP; i--)
+     {
+        EINA_LIST_FOREACH(eda->ec_lists[i], l, top)
+          {
+             // TODO: do we need check top->frame???
+             if (top)
+               return top;
+          }
+     }
+
+   return NULL;
+}
+
+static E_Client *
+_find_top_ec_in_below_edg(E_Desk_Area *eda)
+{
+   E_Desk_Area *below_edg = NULL;
+   E_Client *top = NULL;
+   Eina_List *l;
+   int i;
+
+   below_edg = e_desk_desk_area_below_get(eda->desk, eda);
+   while (below_edg)
+     {
+        for (i=E_DESK_AREA_CLIENT_LAYER_MAX-1; i>=E_DESK_AREA_CLIENT_LAYER_DESKTOP; i--)
+          {
+             EINA_LIST_FOREACH(below_edg->ec_lists[i], l, top)
+               {
+                  if (top)
+                    goto find_top;
+               }
+          }
+
+        top = NULL;
+        below_edg = e_desk_desk_area_below_get(below_edg->desk, below_edg);
+     }
+
+find_top:
+   return top;
+}
+
+EINTERN void
+e_desk_area_ec_raise(E_Desk_Area *eda, E_Client *ec)
+{
+   E_Client *below = NULL;
+   E_Client *above = NULL;
+
+   if (!eda) return;
+   if (!ec) return;
+
+   ELOGF("EDG", "RAISE... eda:%p", ec, eda);
+
+   _e_desk_area_ec_prepend(eda, ec);
+
+   // 1. find below ec in same edgc layer in same eda
+   below = _find_below_ec_in_same_edgc_layer(eda, ec);
+   if (below) goto find_below;
+
+   // 2. find above ec in same edgc layer in same eda
+   above = _find_above_ec_in_same_edgc_layer(eda, ec);
+   if (above) goto find_above;
+
+   // 3. find bottom ec in above edgc layer in same eda
+   above = _find_bottom_ec_in_above_edgc_layer(eda, ec);
+   if (above) goto find_above;
+
+   // 4. find bottom ec in above eda
+   above = _find_bottom_ec_in_above_edg(eda);
+   if (above) goto find_above;
+
+   // 5. if not found, just evas_object_raise
+   ELOGF("EDG", "RAISE... call evas_object_raise", ec);
+   evas_object_raise(ec->frame);
+   return;
+
+find_below:
+   if (below)
+     {
+        ELOGF("EDG", "STACK_ABOVE... below(win:0x%08zx, ec:%p)", ec, e_client_util_win_get(below), below);
+        if (below->frame)
+          {
+             ELOGF("EDG", "STACK_ABOVE... call evas_object_stack_above", ec);
+             evas_object_stack_above(ec->frame, below->frame);
+          }
+     }
+   return;
+
+find_above:
+   if (above)
+     {
+        ELOGF("EDG", "STACK_BELOW... above(win:0x%08zx, ec:%p)", ec, e_client_util_win_get(above), above);
+        if (above->frame)
+          {
+             ELOGF("EDG", "STACK_BELOW... call evas_object_stack_below", ec);
+             evas_object_stack_below(ec->frame, above->frame);
+          }
+     }
+   return;
+}
+
+EINTERN void
+e_desk_area_ec_lower(E_Desk_Area *eda, E_Client *ec)
+{
+   E_Client *above = NULL;
+   E_Client *below = NULL;
+
+   if (!eda) return;
+   if (!ec) return;
+
+   ELOGF("EDG", "LOWER... eda:%p", ec, eda);
+
+   _e_desk_area_ec_append(eda, ec);
+
+   // 1. find above ec in same edgc layer in same eda
+   above = _find_above_ec_in_same_edgc_layer(eda, ec);
+   if (above) goto find_above;
+
+   // 2. find below ec in same edgc layer in same eda
+   below = _find_below_ec_in_same_edgc_layer(eda, ec);
+   if (below) goto find_below;
+
+   // 3. find top ec in below edgc layer in same eda
+   below = _find_top_ec_in_below_edgc_layer(eda, ec);
+   if (below) goto find_below;
+
+   // 4. find top ec in below eda
+   below = _find_top_ec_in_below_edg(eda);
+   if (below) goto find_below;
+
+   // 5. if not found, just evas_object_raise
+   ELOGF("EDG", "LOWER... call evas_object_raise", ec);
+   evas_object_lower(ec->frame);
+   return;
+
+find_below:
+   if (below)
+     {
+        ELOGF("EDG", "STACK_ABOVE... below(win:0x%08zx, ec:%p)", ec, e_client_util_win_get(below), below);
+        if (below->frame)
+          {
+             ELOGF("EDG", "STACK_ABOVE... call evas_object_stack_above", ec);
+             evas_object_stack_above(ec->frame, below->frame);
+          }
+     }
+   return;
+
+find_above:
+   if (above)
+     {
+        ELOGF("EDG", "STACK_BELOW... above(win:0x%08zx, ec:%p)", ec, e_client_util_win_get(above), above);
+        if (above->frame)
+          {
+             ELOGF("EDG", "STACK_BELOW... call evas_object_stack_below", ec);
+             evas_object_stack_below(ec->frame, above->frame);
+          }
+     }
+   return;
+}
+
+EINTERN void
+e_desk_area_ec_stack_above(E_Desk_Area *eda, E_Client *ec, E_Client *above)
+{
+   if (!eda) return;
+   if (!ec) return;
+   if (!ec->frame) return;
+   if (!above) return;
+   if (!above->frame) return;
+
+   _e_desk_area_ec_prepend_relative(eda, ec, above);
+
+   evas_object_stack_above(ec->frame, above->frame);
+}
+
+EINTERN void
+e_desk_area_ec_stack_below(E_Desk_Area *eda, E_Client *ec, E_Client *below)
+{
+   if (!eda) return;
+   if (!ec) return;
+   if (!ec->frame) return;
+   if (!below) return;
+   if (!below->frame) return;
+
+   _e_desk_area_ec_append_relative(eda, ec, below);
+
+   evas_object_stack_below(ec->frame, below->frame);
+}
+
+EINTERN void
+e_desk_area_ec_layer_set(E_Desk_Area *eda, E_Client *ec, E_Layer layer)
+{
+   E_Desk_Area_Client_Layer edg_layer;
+
+   if (!eda) return;
+   if (!ec) return;
+
+   // save original layer
+
+   edg_layer = eda->layer;
+   evas_object_layer_set(ec->frame, edg_layer);
+}
+
+static void
+_e_desk_area_ec_restack(E_Desk_Area *eda, E_Client *ec)
+{
+   E_Client *above = NULL, *below = NULL;
+
+   // 1. find below ec in same edgc layer in same eda
+   below = _find_below_ec_in_same_edgc_layer(eda, ec);
+   if (below) goto find_below;
+
+   // 2. find above ec in same edgc layer in same eda
+   above = _find_above_ec_in_same_edgc_layer(eda, ec);
+   if (above) goto find_above;
+
+   // 3. find bottom ec in above edgc layer in same eda
+   above = _find_bottom_ec_in_above_edgc_layer(eda, ec);
+   if (above) goto find_above;
+
+   // 4. find bottom ec in above eda
+   above = _find_bottom_ec_in_above_edg(eda);
+   if (above) goto find_above;
+
+   // 5. if not found, just evas_object_raise
+   ELOGF("EDG", "RESTACK raise... call evas_object_raise", ec);
+   evas_object_raise(ec->frame);
+   return;
+
+find_below:
+   if (below)
+     {
+        ELOGF("EDG", "STACK_ABOVE... below(win:0x%08zx, ec:%p)", ec, e_client_util_win_get(below), below);
+        if (below->frame)
+          {
+             ELOGF("EDG", "STACK_ABOVE... call evas_object_stack_above", ec);
+             evas_object_stack_above(ec->frame, below->frame);
+          }
+     }
+   return;
+
+find_above:
+   if (above)
+     {
+        ELOGF("EDG", "STACK_BELOW... above(win:0x%08zx, ec:%p)", ec, e_client_util_win_get(above), above);
+        if (above->frame)
+          {
+             ELOGF("EDG", "STACK_BELOW... call evas_object_stack_below", ec);
+             evas_object_stack_below(ec->frame, above->frame);
+          }
+     }
+   return;
+}
+
+EINTERN void
+e_desk_area_ec_rearrange(E_Desk_Area *eda, E_Client *ec)
+{
+   E_Layer layer;
+   E_Desk_Area_Client_Layer edgc_layer, prev_edgc_layer;
+
+   ELOGF("EDG", "RE-ARRANGE... eda:%p", ec, eda);
+
+   if (!eda) return;
+   if (!ec) return;
+
+   prev_edgc_layer = e_client_desk_area_client_layer_get(ec);
+   if (!_check_desk_area_client_layer_validation(prev_edgc_layer)) return;
+   
+   eda->ec_lists[prev_edgc_layer] = eina_list_remove(eda->ec_lists[prev_edgc_layer], ec);
+
+   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);
+
+   _e_desk_area_ec_restack(eda, ec);
+}
+
+EINTERN void
+e_desk_area_ec_stack_change(E_Desk_Area *eda, E_Client *ec)
+{
+}
+
+E_API void
+e_desk_area_ec_update(E_Desk_Area *eda, E_Client *ec)
+{
+   E_Layer layer;
+
+   if (!eda) return;
+   if (!ec) return;
+
+   layer = e_client_desk_area_original_layer_get(ec);
+
+   // update stack
+   e_client_layer_set_by_desk_area(ec, layer);
+
+   // update geometry
+   _e_desk_area_ec_geometry_apply(eda, ec);
+}
+
+E_API void
+e_desk_area_all_ec_update(E_Desk_Area *eda)
+{
+   int i;
+   E_Client *ec;
+   Eina_List *l;
+   Eina_List *list;
+
+   if (!eda) return;
+
+   for (i=0; i<E_DESK_AREA_CLIENT_LAYER_MAX; i++)
+     {
+        list = eina_list_clone(eda->ec_lists[i]);
+
+        EINA_LIST_REVERSE_FOREACH(list, l, ec)
+          {
+             e_desk_area_ec_update(eda, ec);
+          }
+
+        eina_list_free(list);
+        list = NULL;
+     }
+}
+
+E_API Eina_List *
+e_desk_area_ec_list_get(E_Desk_Area *eda)
+{
+   if (!eda) return NULL;
+
+   return NULL;
+}
+
+E_API void
+e_desk_area_transform_enable_set(E_Desk_Area *eda, Eina_Bool enable)
+{
+   if (!eda) return;
+
+   eda->transform_enabled = enable;
+}
+
+E_API Eina_Bool
+e_desk_area_transform_enable_get(E_Desk_Area *eda)
+{
+   if (!eda) return EINA_FALSE;
+
+   return eda->transform_enabled;
+}
+
+
+// for debug
+EINTERN void
+e_desk_area_info_print(E_Desk_Area *eda)
+{
+   Eina_List *l;
+   E_Client *ec;
+
+   if (!eda) return;
+
+   ELOGF("EDG_INFO", "===========================================", NULL);
+   ELOGF("EDG_INFO", "E_Desk_Area(%p), ID(%d), Geo(%d,%d,%d,%d), Layer:%d", NULL, eda, eda->id, eda->x, eda->y, eda->w, eda->h, eda->layer);
+   ELOGF("EDG_INFO", "-------------------------------------------", NULL);
+   for (int i=E_DESK_AREA_CLIENT_LAYER_MAX-1; i>=0; i--)
+     {
+        EINA_LIST_FOREACH(eda->ec_lists[i], l, ec)
+          {
+             ELOGF("EDG_INFO", "EDG_Layer[%d] Win:0x%08zx, EC:%p, frame:%p, ec->layer:%d, org_layer:%d, name:%s", NULL, i, e_client_util_win_get(ec), ec, ec->frame, ec->layer, ec->desk_area.layer_backup, ec->icccm.title ? ec->icccm.title:"NO NAME");
+          }
+     }
+   ELOGF("EDG_INFO", "===========================================", NULL);
+}
+
+static void
+_e_desk_area_hooks_clean(void)
+{
+   Eina_Inlist *l;
+   E_Desk_Area_Hook *dgh;
+   unsigned int x;
+
+   for (x = 0; x < E_DESK_AREA_HOOK_LAST; x++)
+     EINA_INLIST_FOREACH_SAFE(_e_desk_area_hooks[x], l, dgh)
+       {
+          if (!dgh->delete_me) continue;
+          _e_desk_area_hooks[x] = eina_inlist_remove(_e_desk_area_hooks[x], EINA_INLIST_GET(dgh));
+          free(dgh);
+       }
+
+   _e_desk_area_hooks_delete = 0;
+}
+
+static Eina_Bool
+_e_desk_area_hook_call(E_Desk_Area_Hook_Point hookpoint, E_Desk_Area *desk_area, void *data)
+{
+   E_Desk_Area_Hook *dgh;
+
+   e_object_ref(E_OBJECT(desk_area));
+   _e_desk_area_hooks_walking++;
+   EINA_INLIST_FOREACH(_e_desk_area_hooks[hookpoint], dgh)
+     {
+        if (dgh->delete_me) continue;
+        dgh->func(dgh->data, desk_area, data);
+     }
+   _e_desk_area_hooks_walking--;
+   if ((_e_desk_area_hooks_walking == 0) && (_e_desk_area_hooks_delete > 0))
+     _e_desk_area_hooks_clean();
+
+   return !!e_object_unref(E_OBJECT(desk_area));
+}
+
+EINTERN Eina_Bool
+e_desk_area_hook_call(E_Desk_Area *eda, E_Desk_Area_Hook_Point hookpoint, void *data)
+{
+   return _e_desk_area_hook_call(hookpoint, eda, data);
+}
+
+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_Desk_Area_Hook *dgh;
+
+   EINA_SAFETY_ON_TRUE_RETURN_VAL(hookpoint >= E_DESK_AREA_HOOK_LAST, NULL);
+   dgh = E_NEW(E_Desk_Area_Hook, 1);
+   if (!dgh) return NULL;
+
+   dgh->hookpoint = hookpoint;
+   dgh->func = func;
+   dgh->data = (void*)data;
+
+   _e_desk_area_hooks[hookpoint] =
+      eina_inlist_append(_e_desk_area_hooks[hookpoint], EINA_INLIST_GET(dgh));
+
+   return dgh;
+}
+
+E_API void
+e_desk_area_hook_del(E_Desk_Area_Hook * dgh)
+{
+   dgh->delete_me = 1;
+
+   if (_e_desk_area_hooks_walking == 0)
+     {
+        _e_desk_area_hooks[dgh->hookpoint] =
+            eina_inlist_remove(_e_desk_area_hooks[dgh->hookpoint], EINA_INLIST_GET(dgh));
+        free(dgh);
+     }
+   else
+     _e_desk_area_hooks_delete++;
+}
\ No newline at end of file
diff --git a/src/bin/e_desk_area.h b/src/bin/e_desk_area.h
new file mode 100644 (file)
index 0000000..fb7b720
--- /dev/null
@@ -0,0 +1,111 @@
+#ifdef E_TYPEDEFS
+
+typedef struct _E_Desk_Area E_Desk_Area;
+typedef struct _E_Event_Desk_Area E_Event_Desk_Area;
+
+typedef enum _E_Desk_Area_Client_Layer
+{
+   E_DESK_AREA_CLIENT_LAYER_DESKTOP,
+   E_DESK_AREA_CLIENT_LAYER_BELOW,
+   E_DESK_AREA_CLIENT_LAYER_NORMAL,
+   E_DESK_AREA_CLIENT_LAYER_ABOVE,
+   E_DESK_AREA_CLIENT_LAYER_NOTIFICATION_LOW,
+   E_DESK_AREA_CLIENT_LAYER_NOTIFICATION_NORMAL,
+   E_DESK_AREA_CLIENT_LAYER_NOTIFICATION_HIGH,
+   E_DESK_AREA_CLIENT_LAYER_NOTIFICATION_TOP,
+   E_DESK_AREA_CLIENT_LAYER_ALERT,
+   E_DESK_AREA_CLIENT_LAYER_MAX,
+} E_Desk_Area_Client_Layer;
+
+#else
+#ifndef E_DESK_AREA_H
+#define E_DESK_AREA_H
+
+typedef struct _E_Desk_Area_Hook E_Desk_Area_Hook;
+
+typedef enum _E_Desk_Area_Hook_Point
+{
+   E_DESK_AREA_HOOK_SET_APPID,
+   E_DESK_AREA_HOOK_LAST
+} E_Desk_Area_Hook_Point;
+
+typedef void (*E_Desk_Area_Hook_Cb)(void *data, E_Desk_Area *desk_area, void *hook_data);
+
+struct _E_Desk_Area
+{
+   E_Object             e_obj_inherit;
+
+   E_Desk              *desk;
+   int                  id;
+   E_Desk_Area_Layer   layer;
+   Eina_Stringshare    *name;
+
+   int                  x, y, w, h;
+   double               scale_w, scale_h;
+
+   unsigned char        enable  : 1;
+   unsigned char        visible : 1;
+   unsigned char        active  : 1;
+   unsigned char        transform_enabled : 1;
+   Eina_List           *ec_lists[E_DESK_AREA_CLIENT_LAYER_MAX];
+
+   Eina_List           *handlers;
+
+   E_Comp_Wl_Hook      *hook_subsurf_create;
+};
+
+struct _E_Event_Desk_Area
+{
+   E_Desk_Area   *eda;
+};
+
+EINTERN int e_desk_area_init(void);
+EINTERN int e_desk_area_shutdown(void);
+
+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);
+EINTERN void          e_desk_area_del(E_Desk_Area *eda);
+
+EINTERN Eina_Bool     e_desk_area_enable_set(E_Desk_Area *eda, Eina_Bool enable);
+
+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);
+
+EINTERN Eina_Bool     e_desk_area_layer_set(E_Desk_Area *eda, E_Desk_Area_Layer layer);
+E_API   E_Desk_Area_Layer e_desk_area_layer_get(E_Desk_Area *eda);
+
+E_API   void          e_desk_area_activate(E_Desk_Area *eda);
+E_API   Eina_Bool     e_desk_area_is_activate(E_Desk_Area *eda);
+
+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);
+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);
+EINTERN void          e_desk_area_ec_stack_below(E_Desk_Area *eda, E_Client *ec, E_Client *below);
+EINTERN void          e_desk_area_ec_layer_set(E_Desk_Area *eda, E_Client *ec, E_Layer layer);
+EINTERN void          e_desk_area_ec_rearrange(E_Desk_Area *eda, E_Client *ec);
+EINTERN void          e_desk_area_ec_stack_change(E_Desk_Area *eda, E_Client *ec);
+
+E_API   void          e_desk_area_ec_update(E_Desk_Area *eda, E_Client *ec);
+E_API   void          e_desk_area_all_ec_update(E_Desk_Area *eda);
+
+E_API   Eina_List    *e_desk_area_ec_list_get(E_Desk_Area *eda);
+
+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);
+
+// for debug
+EINTERN void          e_desk_area_info_print(E_Desk_Area *eda);
+
+EINTERN Eina_Bool        e_desk_area_hook_call(E_Desk_Area *eda, E_Desk_Area_Hook_Point hookpoint, void *data);
+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);
+
+extern E_API int E_EVENT_DESK_AREA_CHANGE;
+
+#endif
+#endif
diff --git a/src/bin/e_desk_group.c b/src/bin/e_desk_group.c
deleted file mode 100644 (file)
index f46d935..0000000
+++ /dev/null
@@ -1,1067 +0,0 @@
-#include "e.h"
-
-static int _e_desk_group_hooks_delete = 0;
-static int _e_desk_group_hooks_walking = 0;
-
-static Eina_Inlist *_e_desk_group_hooks[] =
-{
-   [E_DESK_GROUP_HOOK_SET_APPID] = NULL,
-};
-
-struct _E_Desk_Group_Hook
-{
-   EINA_INLIST;
-   E_Desk_Group_Hook_Point hookpoint;
-   E_Desk_Group_Hook_Cb    func;
-   void                   *data;
-   unsigned char           delete_me : 1;
-};
-
-static void        _e_desk_group_hooks_clean(void);
-static Eina_Bool   _e_desk_group_hook_call(E_Desk_Group_Hook_Point hookpoint, E_Desk_Group *desk_group, void *appid);
-
-static Eina_Bool
-_check_desk_group_client_layer_validation(E_Desk_Group_Client_Layer edgc_layer)
-{
-   if ((edgc_layer >= E_DESK_GROUP_CLIENT_LAYER_DESKTOP) &&
-       (edgc_layer < E_DESK_GROUP_CLIENT_LAYER_MAX))
-     return EINA_TRUE;
-   else
-     return EINA_FALSE;
-}
-
-static void
-_e_desk_group_ec_prepend(E_Desk_Group *edg, E_Client *ec)
-{
-   E_Desk_Group_Client_Layer edgc_layer;
-
-   edgc_layer = e_client_desk_group_client_layer_get(ec);
-   if (!_check_desk_group_client_layer_validation(edgc_layer)) return;
-
-   edg->ec_lists[edgc_layer] = eina_list_remove(edg->ec_lists[edgc_layer], ec);
-   edg->ec_lists[edgc_layer] = eina_list_prepend(edg->ec_lists[edgc_layer], ec);
-
-   e_client_desk_group_client_layer_set(ec, edgc_layer);
-}
-
-static void
-_e_desk_group_ec_append(E_Desk_Group *edg, E_Client *ec)
-{
-   E_Desk_Group_Client_Layer edgc_layer;
-
-   edgc_layer = e_client_desk_group_client_layer_get(ec);
-   if (!_check_desk_group_client_layer_validation(edgc_layer)) return;
-
-   edg->ec_lists[edgc_layer] = eina_list_remove(edg->ec_lists[edgc_layer], ec);
-   edg->ec_lists[edgc_layer] = eina_list_append(edg->ec_lists[edgc_layer], ec);
-
-   e_client_desk_group_client_layer_set(ec, edgc_layer);
-}
-
-static void
-_e_desk_group_ec_prepend_relative(E_Desk_Group *edg, E_Client *ec, E_Client *above)
-{
-   E_Desk_Group_Client_Layer edgc_layer;
-   E_Desk_Group_Client_Layer above_edgc_layer;
-
-   // update edg's ec_list order
-   edgc_layer = e_client_desk_group_client_layer_get(ec);
-   if (!_check_desk_group_client_layer_validation(edgc_layer)) return;
-   above_edgc_layer = e_client_desk_group_client_layer_get(above);
-   if (!_check_desk_group_client_layer_validation(above_edgc_layer)) return;
-
-   ELOGF("EDG", "STACK_ABOVE... edg:%p. layer:%d, above(win:%zx, ec:%p, layer:%d)", ec, edg, edgc_layer, e_client_util_win_get(above), above, above_edgc_layer);
-
-   if (edgc_layer == above_edgc_layer)
-     {
-        edg->ec_lists[edgc_layer] = eina_list_remove(edg->ec_lists[edgc_layer], ec);
-        edg->ec_lists[edgc_layer] = eina_list_prepend_relative(edg->ec_lists[edgc_layer], ec, above);
-     }
-   else
-     {
-        edg->ec_lists[edgc_layer] = eina_list_remove(edg->ec_lists[edgc_layer], ec);
-        edg->ec_lists[above_edgc_layer] = eina_list_prepend_relative(edg->ec_lists[above_edgc_layer], ec, above);
-     }
-
-   e_client_desk_group_client_layer_set(ec, above_edgc_layer);
-}
-
-static void
-_e_desk_group_ec_append_relative(E_Desk_Group *edg, E_Client *ec, E_Client *below)
-{
-   E_Desk_Group_Client_Layer edgc_layer;
-   E_Desk_Group_Client_Layer below_edgc_layer;
-
-   // update edg's ec_list order
-   edgc_layer = e_client_desk_group_client_layer_get(ec);
-   if (!_check_desk_group_client_layer_validation(edgc_layer)) return;
-   below_edgc_layer = e_client_desk_group_client_layer_get(below);
-   if (!_check_desk_group_client_layer_validation(below_edgc_layer)) return;
-
-   ELOGF("EDG", "STACK_BELOW... edg:%p. layer:%d, below(win:%zx, ec:%p, layer:%d)", ec, edg, edgc_layer, e_client_util_win_get(below), below, below_edgc_layer);
-
-   if (edgc_layer == below_edgc_layer)
-     {
-        edg->ec_lists[edgc_layer] = eina_list_remove(edg->ec_lists[edgc_layer], ec);
-        edg->ec_lists[edgc_layer] = eina_list_append_relative(edg->ec_lists[edgc_layer], ec, below);
-     }
-   else
-     {
-        edg->ec_lists[edgc_layer] = eina_list_remove(edg->ec_lists[edgc_layer], ec);
-        edg->ec_lists[below_edgc_layer] = eina_list_append_relative(edg->ec_lists[below_edgc_layer], ec, below);
-     }
-
-   e_client_desk_group_client_layer_set(ec, below_edgc_layer);
-}
-
-static void
-_e_desk_geometry_info_set(E_Desk_Group *edg, int x, int y, int w, int h)
-{
-   E_Desk *desk;
-
-   if (!edg) return;
-   if (!edg->desk) return;
-
-   desk = edg->desk;
-
-   edg->x = x;
-   edg->y = y;
-   edg->w = w;
-   edg->h = h;
-
-   edg->scale_w = (double)w / (double)desk->geom.w;
-   edg->scale_h = (double)h / (double)desk->geom.h;
-}
-
-static void
-_e_desk_group_active_change(E_Desk_Group *edg, E_Desk *desk)
-{
-   E_Desk_Group *prev_active_edg;
-
-   if (!desk) return;
-
-   prev_active_edg = e_desk_desk_group_active_get(desk);
-   if (prev_active_edg == edg) return;
-
-   // 1. reset current active edg info
-   if (prev_active_edg)
-     prev_active_edg->active = EINA_FALSE;
-
-   // 2. set new active edg info
-   if (edg)
-     {
-        edg->active = EINA_TRUE;
-        e_desk_desk_group_active_set(desk, edg);
-     }
-   else
-     {
-        e_desk_desk_group_active_set(desk, NULL);
-     }
-}
-
-static void
-_e_desk_group_cb_hook_subsurface_create(void *data, E_Client *ec)
-{
-   EINA_SAFETY_ON_NULL_RETURN(ec);
-
-   if (ec->desk_group.transform)
-     {
-        e_client_transform_core_remove(ec, ec->desk_group.transform);
-     }
-}
-
-EINTERN int
-e_desk_group_init(void)
-{
-   return 1;
-}
-
-EINTERN int
-e_desk_group_shutdown(void)
-{
-   return 1;
-}
-
-EINTERN E_Desk_Group *
-e_desk_group_new(E_Desk *desk, int id, int x, int y, int w, int h, E_Desk_Group_Layer layer)
-{
-   E_Desk_Group *edg;
-
-   E_OBJECT_CHECK_RETURN(desk, NULL);
-   E_OBJECT_TYPE_CHECK_RETURN(desk, E_DESK_TYPE, NULL);
-
-   edg = E_NEW(E_Desk_Group, 1);
-   if (!edg) return NULL;
-
-   edg->desk = desk;
-   edg->id = id;
-
-   _e_desk_geometry_info_set(edg, x, y, w, h);
-
-   edg->layer = layer;
-
-   edg->hook_subsurf_create = e_comp_wl_hook_add(E_COMP_WL_HOOK_SUBSURFACE_CREATE,
-                                                 _e_desk_group_cb_hook_subsurface_create,
-                                                 NULL);
-
-   return edg;
-}
-
-EINTERN void
-e_desk_group_del(E_Desk_Group *edg)
-{
-   if (!edg) return;
-
-   for (int i=0; i<E_DESK_GROUP_CLIENT_LAYER_MAX; i++)
-     {
-        eina_list_free(edg->ec_lists[i]);
-     }
-
-   if (edg->active)
-     _e_desk_group_active_change(NULL, edg->desk);
-
-   E_FREE_FUNC(edg->hook_subsurf_create, e_comp_wl_hook_del);
-
-   E_FREE(edg);
-}
-
-void _e_desk_group_ec_geometry_apply(E_Desk_Group *edg, E_Client *ec)
-{
-   E_Maximize max;
-   E_Util_Transform *transform;
-
-   if (e_comp_wl_subsurface_check(ec))
-     return;
-
-   transform = ec->desk_group.transform;
-
-   if (edg->transform_enabled)
-     {
-        if (!transform) return;
-
-        e_util_transform_move(transform, edg->x, edg->y, 0);
-        e_util_transform_scale(transform, edg->scale_w, edg->scale_h, 1.0);
-        e_client_transform_core_add(ec, transform);
-
-        e_client_transform_core_update(ec);
-     }
-   else
-     {
-        if (transform)
-          {
-            e_util_transform_move(transform, 0, 0, 0);
-            e_util_transform_scale(transform, 1.0, 1.0, 1.0);
-            e_client_transform_core_remove(ec, transform);
-
-            e_client_transform_core_update(ec);
-          }
-
-        max = ec->maximized;
-        ec->maximized = E_MAXIMIZE_NONE;
-        e_client_maximize(ec, max);
-     }
-}
-
-void _e_desk_group_ec_geometry_restore(E_Desk_Group *edg, E_Client *ec)
-{
-   e_client_transform_core_update(ec);
-}
-
-void _e_desk_group_enable(E_Desk_Group *edg)
-{
-   int i;
-   E_Client *ec;
-   Eina_List *l;
-   Eina_List *list;
-
-   if (!edg) return;
-
-   for (i=0; i<E_DESK_GROUP_CLIENT_LAYER_MAX; i++)
-     {
-        list = eina_list_clone(edg->ec_lists[i]);
-        EINA_LIST_REVERSE_FOREACH(list, l, ec)
-          {
-             e_client_desk_group_enable_set(ec, EINA_TRUE);
-          }
-        eina_list_free(list);
-        list = NULL;
-     }
-}
-
-void _e_desk_group_disable(E_Desk_Group *edg)
-{
-   int i;
-   E_Client *ec;
-   Eina_List *l = NULL;
-   Eina_List *list = NULL;
-
-   for (i=0; i<E_DESK_GROUP_CLIENT_LAYER_MAX; i++)
-     {
-        list = eina_list_clone(edg->ec_lists[i]);
-        EINA_LIST_REVERSE_FOREACH(list, l, ec)
-          {
-             // unset ec's desk_group enable flag
-             e_client_desk_group_enable_set(ec, EINA_FALSE);
-             // restore original ec->layer
-             e_client_desk_group_original_layer_restore(ec);
-             // restore ec's original geometry (changing real geometry or using transform)
-             _e_desk_group_ec_geometry_restore(edg, ec);
-
-             e_client_desk_group_set(ec, NULL);
-          }
-        eina_list_free(list);
-        list = NULL;
-
-        eina_list_free(edg->ec_lists[i]);
-        edg->ec_lists[i] = NULL;
-     }
-}
-
-EINTERN Eina_Bool
-e_desk_group_enable_set(E_Desk_Group *edg, Eina_Bool enable)
-{
-   if (!edg) return EINA_FALSE;
-
-   edg->enable = enable;
-   if (enable)
-     {
-        _e_desk_group_enable(edg);
-     }
-   else
-     {
-        _e_desk_group_disable(edg);
-     }
-
-   return EINA_TRUE;
-}
-
-E_API Eina_Bool
-e_desk_group_geometry_set(E_Desk_Group *edg, int x, int y, int w, int h)
-{
-   if (!edg) return EINA_FALSE;
-
-   _e_desk_geometry_info_set(edg, x, y, w, h);
-
-   return EINA_TRUE;
-}
-
-E_API Eina_Bool
-e_desk_group_geometry_get(E_Desk_Group *edg, int *x, int *y, int *w, int *h)
-{
-   if (!edg) return EINA_FALSE;
-
-   if (x) *x = edg->x;
-   if (y) *y = edg->y;
-   if (w) *w = edg->w;
-   if (h) *h = edg->h;
-
-   return EINA_TRUE;
-}
-
-EINTERN Eina_Bool
-e_desk_group_layer_set(E_Desk_Group *edg, E_Desk_Group_Layer layer)
-{
-   if (!edg) return EINA_FALSE;
-
-   edg->layer = layer;
-   return EINA_TRUE;
-}
-
-E_API E_Desk_Group_Layer
-e_desk_group_layer_get(E_Desk_Group *edg)
-{
-   if (!edg) return E_DESK_GROUP_LAYER_NORMAL;
-
-   return edg->layer;
-}
-
-E_API void
-e_desk_group_activate(E_Desk_Group *edg)
-{
-   if (!edg) return;
-   if (!edg->desk) return;
-
-   e_desk_group_raise(edg);
-   _e_desk_group_active_change(edg, edg->desk);
-}
-
-E_API Eina_Bool
-e_desk_group_is_activate(E_Desk_Group *edg)
-{
-   if (!edg) return EINA_FALSE;
-   return edg->active;
-}
-
-E_API void
-e_desk_group_raise(E_Desk_Group *edg)
-{
-   int i;
-   E_Client *ec;
-   Eina_List *l = NULL;
-   Eina_List *ll = NULL;
-
-   if (!edg) return;
-
-   for (i=0; i<E_DESK_GROUP_CLIENT_LAYER_MAX; i++)
-     {
-        EINA_LIST_REVERSE_FOREACH_SAFE(edg->ec_lists[i], l, ll, ec)
-          {
-             evas_object_raise(ec->frame);
-          }
-     }
-}
-
-E_API void
-e_desk_group_lower(E_Desk_Group *edg)
-{
-   int i;
-   E_Client *ec;
-   Eina_List *l = NULL;
-   Eina_List *ll = NULL;
-
-   if (!edg) return;
-
-   for (i=E_DESK_GROUP_CLIENT_LAYER_MAX-1; i>=0; i--)
-     {
-        //EINA_LIST_FOREACH(edg->ec_lists[i], l, ec)
-        EINA_LIST_FOREACH_SAFE(edg->ec_lists[i], l, ll, ec)
-          {
-             evas_object_lower(ec->frame);
-          }
-     }
-}
-
-
-static E_Desk_Group_Client_Layer
-_e_desk_group_client_layer_convert_from_layer(E_Layer layer)
-{
-   E_Desk_Group_Client_Layer edg_layer;
-
-   if (layer <= E_LAYER_CLIENT_DESKTOP)
-     edg_layer = E_DESK_GROUP_CLIENT_LAYER_DESKTOP;
-   else if (layer <= E_LAYER_CLIENT_BELOW)
-     edg_layer = E_DESK_GROUP_CLIENT_LAYER_BELOW;
-   else if (layer <= E_LAYER_CLIENT_NORMAL)
-     edg_layer = E_DESK_GROUP_CLIENT_LAYER_NORMAL;
-   else if (layer <= E_LAYER_CLIENT_ABOVE)
-     edg_layer = E_DESK_GROUP_CLIENT_LAYER_ABOVE;
-   else if (layer <= E_LAYER_CLIENT_NOTIFICATION_LOW)
-     edg_layer = E_DESK_GROUP_CLIENT_LAYER_NOTIFICATION_LOW;
-   else if (layer <= E_LAYER_CLIENT_NOTIFICATION_NORMAL)
-     edg_layer = E_DESK_GROUP_CLIENT_LAYER_NOTIFICATION_NORMAL;
-   else if (layer <= E_LAYER_CLIENT_NOTIFICATION_HIGH)
-     edg_layer = E_DESK_GROUP_CLIENT_LAYER_NOTIFICATION_HIGH;
-   else if (layer <= E_LAYER_CLIENT_NOTIFICATION_TOP)
-     edg_layer = E_DESK_GROUP_CLIENT_LAYER_NOTIFICATION_TOP;
-   else
-     edg_layer = E_DESK_GROUP_CLIENT_LAYER_ALERT;
-
-   return edg_layer;
-}
-
-E_API Eina_Bool
-e_desk_group_ec_add(E_Desk_Group *edg, E_Client *ec)
-{
-   E_Desk_Group_Client_Layer edgc_layer;
-   E_Layer layer;
-
-   if (!edg) return EINA_FALSE;
-   if (!ec) return EINA_FALSE;
-
-
-   layer = e_client_desk_group_original_layer_get(ec);
-   edgc_layer = _e_desk_group_client_layer_convert_from_layer(layer);
-
-   edg->ec_lists[edgc_layer] = eina_list_prepend(edg->ec_lists[edgc_layer], ec);
-
-   e_client_desk_group_client_layer_set(ec, edgc_layer);
-
-   return EINA_TRUE;
-}
-
-E_API void
-e_desk_group_ec_remove(E_Desk_Group *edg, E_Client *ec)
-{
-   E_Desk_Group_Client_Layer edgc_layer;
-
-   if (!edg) return;
-   if (!ec) return;
-
-   edgc_layer = e_client_desk_group_client_layer_get(ec);
-   if (!_check_desk_group_client_layer_validation(edgc_layer)) return;
-
-   edg->ec_lists[edgc_layer] = eina_list_remove(edg->ec_lists[edgc_layer], ec);
-}
-
-static E_Client *
-_find_above_ec_in_same_edgc_layer(E_Desk_Group *edg, E_Client *ec)
-{
-   Eina_List *l;
-   E_Client *above = NULL;
-   E_Client *temp = NULL;
-   E_Desk_Group_Client_Layer edgc_layer;
-   Eina_Bool find = EINA_FALSE;
-
-   edgc_layer = e_client_desk_group_client_layer_get(ec);
-   if (!_check_desk_group_client_layer_validation(edgc_layer)) return NULL;
-
-   EINA_LIST_REVERSE_FOREACH(edg->ec_lists[edgc_layer], l, temp)
-     {
-        if (find)
-          {
-             above = temp;
-             break;
-          }
-
-        if (temp == ec)
-          {
-             find = EINA_TRUE;
-          }
-     }
-
-   // TODO: do we need check below->frame???
-
-   return above;
-}
-
-static E_Client *
-_find_bottom_ec_in_above_edgc_layer(E_Desk_Group *edg, E_Client *ec)
-{
-   Eina_List *l;
-   E_Client *bottom = NULL;
-   E_Desk_Group_Client_Layer edgc_layer;
-   int i;
-
-   edgc_layer = e_client_desk_group_client_layer_get(ec);
-   if (!_check_desk_group_client_layer_validation(edgc_layer)) return NULL;
-
-   for (i = edgc_layer+1; i < E_DESK_GROUP_CLIENT_LAYER_MAX; i++)
-     {
-        EINA_LIST_REVERSE_FOREACH(edg->ec_lists[i], l, bottom)
-          {
-             // TODO: do we need check below->frame???
-             if (bottom)
-               return bottom;
-          }
-     }
-
-   return NULL;
-}
-
-static E_Client *
-_find_bottom_ec_in_above_edg(E_Desk_Group *edg)
-{
-   E_Desk_Group *above_edg = NULL;
-   E_Client *bottom = NULL;
-   Eina_List *l;
-   int i;
-
-   above_edg = e_desk_desk_group_above_get(edg->desk, edg);
-   while (above_edg)
-     {
-        for (i=E_DESK_GROUP_CLIENT_LAYER_DESKTOP; i<E_DESK_GROUP_CLIENT_LAYER_MAX; i++)
-          {
-             EINA_LIST_REVERSE_FOREACH(above_edg->ec_lists[i], l, bottom)
-               {
-                  if (bottom)
-                    goto find_bottom;
-               }
-          }
-
-        bottom = NULL;
-        above_edg = e_desk_desk_group_above_get(above_edg->desk, above_edg);
-     }
-
-find_bottom:
-   return bottom;
-}
-
-static E_Client *
-_find_below_ec_in_same_edgc_layer(E_Desk_Group *edg, E_Client *ec)
-{
-   Eina_List *l;
-   E_Client *below = NULL;
-   E_Client *temp = NULL;
-   E_Desk_Group_Client_Layer edgc_layer;
-   Eina_Bool find = EINA_FALSE;
-
-   edgc_layer = e_client_desk_group_client_layer_get(ec);
-   if (!_check_desk_group_client_layer_validation(edgc_layer)) return NULL;
-
-   EINA_LIST_FOREACH(edg->ec_lists[edgc_layer], l, temp)
-     {
-        if (find)
-          {
-             below = temp;
-             break;
-          }
-
-        if (temp == ec)
-          {
-             find = EINA_TRUE;
-          }
-     }
-
-   // TODO: do we need check below->frame???
-
-   return below;
-}
-
-static E_Client *
-_find_top_ec_in_below_edgc_layer(E_Desk_Group *edg, E_Client *ec)
-{
-   Eina_List *l;
-   E_Client *top = NULL;
-   E_Desk_Group_Client_Layer edgc_layer;
-   int i;
-
-   edgc_layer = e_client_desk_group_client_layer_get(ec);
-   if (!_check_desk_group_client_layer_validation(edgc_layer)) return NULL;
-
-   for (i = edgc_layer-1; i >= E_DESK_GROUP_CLIENT_LAYER_DESKTOP; i--)
-     {
-        EINA_LIST_FOREACH(edg->ec_lists[i], l, top)
-          {
-             // TODO: do we need check top->frame???
-             if (top)
-               return top;
-          }
-     }
-
-   return NULL;
-}
-
-static E_Client *
-_find_top_ec_in_below_edg(E_Desk_Group *edg)
-{
-   E_Desk_Group *below_edg = NULL;
-   E_Client *top = NULL;
-   Eina_List *l;
-   int i;
-
-   below_edg = e_desk_desk_group_below_get(edg->desk, edg);
-   while (below_edg)
-     {
-        for (i=E_DESK_GROUP_CLIENT_LAYER_MAX-1; i>=E_DESK_GROUP_CLIENT_LAYER_DESKTOP; i--)
-          {
-             EINA_LIST_FOREACH(below_edg->ec_lists[i], l, top)
-               {
-                  if (top)
-                    goto find_top;
-               }
-          }
-
-        top = NULL;
-        below_edg = e_desk_desk_group_below_get(below_edg->desk, below_edg);
-     }
-
-find_top:
-   return top;
-}
-
-EINTERN void
-e_desk_group_ec_raise(E_Desk_Group *edg, E_Client *ec)
-{
-   E_Client *below = NULL;
-   E_Client *above = NULL;
-
-   if (!edg) return;
-   if (!ec) return;
-
-   ELOGF("EDG", "RAISE... edg:%p", ec, edg);
-
-   _e_desk_group_ec_prepend(edg, ec);
-
-   // 1. find below ec in same edgc layer in same edg
-   below = _find_below_ec_in_same_edgc_layer(edg, ec);
-   if (below) goto find_below;
-
-   // 2. find above ec in same edgc layer in same edg
-   above = _find_above_ec_in_same_edgc_layer(edg, ec);
-   if (above) goto find_above;
-
-   // 3. find bottom ec in above edgc layer in same edg
-   above = _find_bottom_ec_in_above_edgc_layer(edg, ec);
-   if (above) goto find_above;
-
-   // 4. find bottom ec in above edg
-   above = _find_bottom_ec_in_above_edg(edg);
-   if (above) goto find_above;
-
-   // 5. if not found, just evas_object_raise
-   ELOGF("EDG", "RAISE... call evas_object_raise", ec);
-   evas_object_raise(ec->frame);
-   return;
-
-find_below:
-   if (below)
-     {
-        ELOGF("EDG", "STACK_ABOVE... below(win:0x%08zx, ec:%p)", ec, e_client_util_win_get(below), below);
-        if (below->frame)
-          {
-             ELOGF("EDG", "STACK_ABOVE... call evas_object_stack_above", ec);
-             evas_object_stack_above(ec->frame, below->frame);
-          }
-     }
-   return;
-
-find_above:
-   if (above)
-     {
-        ELOGF("EDG", "STACK_BELOW... above(win:0x%08zx, ec:%p)", ec, e_client_util_win_get(above), above);
-        if (above->frame)
-          {
-             ELOGF("EDG", "STACK_BELOW... call evas_object_stack_below", ec);
-             evas_object_stack_below(ec->frame, above->frame);
-          }
-     }
-   return;
-}
-
-EINTERN void
-e_desk_group_ec_lower(E_Desk_Group *edg, E_Client *ec)
-{
-   E_Client *above = NULL;
-   E_Client *below = NULL;
-
-   if (!edg) return;
-   if (!ec) return;
-
-   ELOGF("EDG", "LOWER... edg:%p", ec, edg);
-
-   _e_desk_group_ec_append(edg, ec);
-
-   // 1. find above ec in same edgc layer in same edg
-   above = _find_above_ec_in_same_edgc_layer(edg, ec);
-   if (above) goto find_above;
-
-   // 2. find below ec in same edgc layer in same edg
-   below = _find_below_ec_in_same_edgc_layer(edg, ec);
-   if (below) goto find_below;
-
-   // 3. find top ec in below edgc layer in same edg
-   below = _find_top_ec_in_below_edgc_layer(edg, ec);
-   if (below) goto find_below;
-
-   // 4. find top ec in below edg
-   below = _find_top_ec_in_below_edg(edg);
-   if (below) goto find_below;
-
-   // 5. if not found, just evas_object_raise
-   ELOGF("EDG", "LOWER... call evas_object_raise", ec);
-   evas_object_lower(ec->frame);
-   return;
-
-find_below:
-   if (below)
-     {
-        ELOGF("EDG", "STACK_ABOVE... below(win:0x%08zx, ec:%p)", ec, e_client_util_win_get(below), below);
-        if (below->frame)
-          {
-             ELOGF("EDG", "STACK_ABOVE... call evas_object_stack_above", ec);
-             evas_object_stack_above(ec->frame, below->frame);
-          }
-     }
-   return;
-
-find_above:
-   if (above)
-     {
-        ELOGF("EDG", "STACK_BELOW... above(win:0x%08zx, ec:%p)", ec, e_client_util_win_get(above), above);
-        if (above->frame)
-          {
-             ELOGF("EDG", "STACK_BELOW... call evas_object_stack_below", ec);
-             evas_object_stack_below(ec->frame, above->frame);
-          }
-     }
-   return;
-}
-
-EINTERN void
-e_desk_group_ec_stack_above(E_Desk_Group *edg, E_Client *ec, E_Client *above)
-{
-   if (!edg) return;
-   if (!ec) return;
-   if (!ec->frame) return;
-   if (!above) return;
-   if (!above->frame) return;
-
-   _e_desk_group_ec_prepend_relative(edg, ec, above);
-
-   evas_object_stack_above(ec->frame, above->frame);
-}
-
-EINTERN void
-e_desk_group_ec_stack_below(E_Desk_Group *edg, E_Client *ec, E_Client *below)
-{
-   if (!edg) return;
-   if (!ec) return;
-   if (!ec->frame) return;
-   if (!below) return;
-   if (!below->frame) return;
-
-   _e_desk_group_ec_append_relative(edg, ec, below);
-
-   evas_object_stack_below(ec->frame, below->frame);
-}
-
-EINTERN void
-e_desk_group_ec_layer_set(E_Desk_Group *edg, E_Client *ec, E_Layer layer)
-{
-   E_Desk_Group_Client_Layer edg_layer;
-
-   if (!edg) return;
-   if (!ec) return;
-
-   // save original layer
-
-   edg_layer = edg->layer;
-   evas_object_layer_set(ec->frame, edg_layer);
-}
-
-static void
-_e_desk_group_ec_restack(E_Desk_Group *edg, E_Client *ec)
-{
-   E_Client *above = NULL, *below = NULL;
-
-   // 1. find below ec in same edgc layer in same edg
-   below = _find_below_ec_in_same_edgc_layer(edg, ec);
-   if (below) goto find_below;
-
-   // 2. find above ec in same edgc layer in same edg
-   above = _find_above_ec_in_same_edgc_layer(edg, ec);
-   if (above) goto find_above;
-
-   // 3. find bottom ec in above edgc layer in same edg
-   above = _find_bottom_ec_in_above_edgc_layer(edg, ec);
-   if (above) goto find_above;
-
-   // 4. find bottom ec in above edg
-   above = _find_bottom_ec_in_above_edg(edg);
-   if (above) goto find_above;
-
-   // 5. if not found, just evas_object_raise
-   ELOGF("EDG", "RESTACK raise... call evas_object_raise", ec);
-   evas_object_raise(ec->frame);
-   return;
-
-find_below:
-   if (below)
-     {
-        ELOGF("EDG", "STACK_ABOVE... below(win:0x%08zx, ec:%p)", ec, e_client_util_win_get(below), below);
-        if (below->frame)
-          {
-             ELOGF("EDG", "STACK_ABOVE... call evas_object_stack_above", ec);
-             evas_object_stack_above(ec->frame, below->frame);
-          }
-     }
-   return;
-
-find_above:
-   if (above)
-     {
-        ELOGF("EDG", "STACK_BELOW... above(win:0x%08zx, ec:%p)", ec, e_client_util_win_get(above), above);
-        if (above->frame)
-          {
-             ELOGF("EDG", "STACK_BELOW... call evas_object_stack_below", ec);
-             evas_object_stack_below(ec->frame, above->frame);
-          }
-     }
-   return;
-}
-
-EINTERN void
-e_desk_group_ec_rearrange(E_Desk_Group *edg, E_Client *ec)
-{
-   E_Layer layer;
-   E_Desk_Group_Client_Layer edgc_layer, prev_edgc_layer;
-
-   ELOGF("EDG", "RE-ARRANGE... edg:%p", ec, edg);
-
-   if (!edg) return;
-   if (!ec) return;
-
-   prev_edgc_layer = e_client_desk_group_client_layer_get(ec);
-   if (!_check_desk_group_client_layer_validation(prev_edgc_layer)) return;
-   
-   edg->ec_lists[prev_edgc_layer] = eina_list_remove(edg->ec_lists[prev_edgc_layer], ec);
-
-   layer = e_client_desk_group_original_layer_get(ec);
-   edgc_layer = _e_desk_group_client_layer_convert_from_layer(layer);
-   edg->ec_lists[edgc_layer] = eina_list_prepend(edg->ec_lists[edgc_layer], ec);
-
-   e_client_desk_group_client_layer_set(ec, edgc_layer);
-
-   _e_desk_group_ec_restack(edg, ec);
-}
-
-EINTERN void
-e_desk_group_ec_stack_change(E_Desk_Group *edg, E_Client *ec)
-{
-}
-
-E_API void
-e_desk_group_ec_update(E_Desk_Group *edg, E_Client *ec)
-{
-   E_Layer layer;
-
-   if (!edg) return;
-   if (!ec) return;
-
-   layer = e_client_desk_group_original_layer_get(ec);
-
-   // update stack
-   e_client_layer_set_by_desk_group(ec, layer);
-
-   // update geometry
-   _e_desk_group_ec_geometry_apply(edg, ec);
-}
-
-E_API void
-e_desk_group_all_ec_update(E_Desk_Group *edg)
-{
-   int i;
-   E_Client *ec;
-   Eina_List *l;
-   Eina_List *list;
-
-   if (!edg) return;
-
-   for (i=0; i<E_DESK_GROUP_CLIENT_LAYER_MAX; i++)
-     {
-        list = eina_list_clone(edg->ec_lists[i]);
-
-        EINA_LIST_REVERSE_FOREACH(list, l, ec)
-          {
-             e_desk_group_ec_update(edg, ec);
-          }
-
-        eina_list_free(list);
-        list = NULL;
-     }
-}
-
-E_API Eina_List *
-e_desk_group_ec_list_get(E_Desk_Group *edg)
-{
-   if (!edg) return NULL;
-
-   return NULL;
-}
-
-E_API void
-e_desk_group_transform_enable_set(E_Desk_Group *edg, Eina_Bool enable)
-{
-   if (!edg) return;
-
-   edg->transform_enabled = enable;
-}
-
-E_API Eina_Bool
-e_desk_group_transform_enable_get(E_Desk_Group *edg)
-{
-   if (!edg) return EINA_FALSE;
-
-   return edg->transform_enabled;
-}
-
-
-// for debug
-EINTERN void
-e_desk_group_info_print(E_Desk_Group *edg)
-{
-   Eina_List *l;
-   E_Client *ec;
-
-   if (!edg) return;
-
-   ELOGF("EDG_INFO", "===========================================", NULL);
-   ELOGF("EDG_INFO", "E_Desk_Group(%p), ID(%d), Geo(%d,%d,%d,%d), Layer:%d", NULL, edg, edg->id, edg->x, edg->y, edg->w, edg->h, edg->layer);
-   ELOGF("EDG_INFO", "-------------------------------------------", NULL);
-   for (int i=E_DESK_GROUP_CLIENT_LAYER_MAX-1; i>=0; i--)
-     {
-        EINA_LIST_FOREACH(edg->ec_lists[i], l, ec)
-          {
-             ELOGF("EDG_INFO", "EDG_Layer[%d] Win:0x%08zx, EC:%p, frame:%p, ec->layer:%d, org_layer:%d, name:%s", NULL, i, e_client_util_win_get(ec), ec, ec->frame, ec->layer, ec->desk_group.layer_backup, ec->icccm.title ? ec->icccm.title:"NO NAME");
-          }
-     }
-   ELOGF("EDG_INFO", "===========================================", NULL);
-}
-
-static void
-_e_desk_group_hooks_clean(void)
-{
-   Eina_Inlist *l;
-   E_Desk_Group_Hook *dgh;
-   unsigned int x;
-
-   for (x = 0; x < E_DESK_GROUP_HOOK_LAST; x++)
-     EINA_INLIST_FOREACH_SAFE(_e_desk_group_hooks[x], l, dgh)
-       {
-          if (!dgh->delete_me) continue;
-          _e_desk_group_hooks[x] = eina_inlist_remove(_e_desk_group_hooks[x], EINA_INLIST_GET(dgh));
-          free(dgh);
-       }
-
-   _e_desk_group_hooks_delete = 0;
-}
-
-static Eina_Bool
-_e_desk_group_hook_call(E_Desk_Group_Hook_Point hookpoint, E_Desk_Group *desk_group, void *data)
-{
-   E_Desk_Group_Hook *dgh;
-
-   e_object_ref(E_OBJECT(desk_group));
-   _e_desk_group_hooks_walking++;
-   EINA_INLIST_FOREACH(_e_desk_group_hooks[hookpoint], dgh)
-     {
-        if (dgh->delete_me) continue;
-        dgh->func(dgh->data, desk_group, data);
-     }
-   _e_desk_group_hooks_walking--;
-   if ((_e_desk_group_hooks_walking == 0) && (_e_desk_group_hooks_delete > 0))
-     _e_desk_group_hooks_clean();
-
-   return !!e_object_unref(E_OBJECT(desk_group));
-}
-
-EINTERN Eina_Bool
-e_desk_group_hook_call(E_Desk_Group *edg, E_Desk_Group_Hook_Point hookpoint, void *data)
-{
-   return _e_desk_group_hook_call(hookpoint, edg, data);
-}
-
-E_API E_Desk_Group_Hook *
-e_desk_group_hook_add(E_Desk_Group_Hook_Point hookpoint,
-      E_Desk_Group_Hook_Cb func, const void *data)
-{
-   E_Desk_Group_Hook *dgh;
-
-   EINA_SAFETY_ON_TRUE_RETURN_VAL(hookpoint >= E_DESK_GROUP_HOOK_LAST, NULL);
-   dgh = E_NEW(E_Desk_Group_Hook, 1);
-   if (!dgh) return NULL;
-
-   dgh->hookpoint = hookpoint;
-   dgh->func = func;
-   dgh->data = (void*)data;
-
-   _e_desk_group_hooks[hookpoint] =
-      eina_inlist_append(_e_desk_group_hooks[hookpoint], EINA_INLIST_GET(dgh));
-
-   return dgh;
-}
-
-E_API void
-e_desk_group_hook_del(E_Desk_Group_Hook * dgh)
-{
-   dgh->delete_me = 1;
-
-   if (_e_desk_group_hooks_walking == 0)
-     {
-        _e_desk_group_hooks[dgh->hookpoint] =
-            eina_inlist_remove(_e_desk_group_hooks[dgh->hookpoint], EINA_INLIST_GET(dgh));
-        free(dgh);
-     }
-   else
-     _e_desk_group_hooks_delete++;
-}
\ No newline at end of file
diff --git a/src/bin/e_desk_group.h b/src/bin/e_desk_group.h
deleted file mode 100644 (file)
index 2bb74df..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-#ifdef E_TYPEDEFS
-
-typedef struct _E_Desk_Group E_Desk_Group;
-typedef struct _E_Event_Desk_Group E_Event_Desk_Group;
-
-typedef enum _E_Desk_Group_Client_Layer
-{
-   E_DESK_GROUP_CLIENT_LAYER_DESKTOP,
-   E_DESK_GROUP_CLIENT_LAYER_BELOW,
-   E_DESK_GROUP_CLIENT_LAYER_NORMAL,
-   E_DESK_GROUP_CLIENT_LAYER_ABOVE,
-   E_DESK_GROUP_CLIENT_LAYER_NOTIFICATION_LOW,
-   E_DESK_GROUP_CLIENT_LAYER_NOTIFICATION_NORMAL,
-   E_DESK_GROUP_CLIENT_LAYER_NOTIFICATION_HIGH,
-   E_DESK_GROUP_CLIENT_LAYER_NOTIFICATION_TOP,
-   E_DESK_GROUP_CLIENT_LAYER_ALERT,
-   E_DESK_GROUP_CLIENT_LAYER_MAX,
-} E_Desk_Group_Client_Layer;
-
-#else
-#ifndef E_DESK_GROUP_H
-#define E_DESK_GROUP_H
-
-typedef struct _E_Desk_Group_Hook E_Desk_Group_Hook;
-
-typedef enum _E_Desk_Group_Hook_Point
-{
-   E_DESK_GROUP_HOOK_SET_APPID,
-   E_DESK_GROUP_HOOK_LAST
-} E_Desk_Group_Hook_Point;
-
-typedef void (*E_Desk_Group_Hook_Cb)(void *data, E_Desk_Group *desk_group, void *hook_data);
-
-struct _E_Desk_Group
-{
-   E_Object             e_obj_inherit;
-
-   E_Desk              *desk;
-   int                  id;
-   E_Desk_Group_Layer   layer;
-   Eina_Stringshare    *name;
-
-   int                  x, y, w, h;
-   double               scale_w, scale_h;
-
-   unsigned char        enable  : 1;
-   unsigned char        visible : 1;
-   unsigned char        active  : 1;
-   unsigned char        transform_enabled : 1;
-   Eina_List           *ec_lists[E_DESK_GROUP_CLIENT_LAYER_MAX];
-
-   Eina_List           *handlers;
-
-   E_Comp_Wl_Hook      *hook_subsurf_create;
-};
-
-struct _E_Event_Desk_Group
-{
-   E_Desk_Group   *edg;
-};
-
-EINTERN int e_desk_group_init(void);
-EINTERN int e_desk_group_shutdown(void);
-
-EINTERN E_Desk_Group *e_desk_group_new(E_Desk *desk, int id, int x, int y, int w, int h, E_Desk_Group_Layer layer);
-EINTERN void          e_desk_group_del(E_Desk_Group *edg);
-
-EINTERN Eina_Bool     e_desk_group_enable_set(E_Desk_Group *edg, Eina_Bool enable);
-
-E_API   Eina_Bool     e_desk_group_geometry_set(E_Desk_Group *edg, int x, int y, int w, int h);
-E_API   Eina_Bool     e_desk_group_geometry_get(E_Desk_Group *edg, int *x, int *y, int *w, int *h);
-
-EINTERN Eina_Bool     e_desk_group_layer_set(E_Desk_Group *edg, E_Desk_Group_Layer layer);
-E_API   E_Desk_Group_Layer e_desk_group_layer_get(E_Desk_Group *edg);
-
-E_API   void          e_desk_group_activate(E_Desk_Group *edg);
-E_API   Eina_Bool     e_desk_group_is_activate(E_Desk_Group *edg);
-
-E_API   void          e_desk_group_raise(E_Desk_Group *edg);
-E_API   void          e_desk_group_lower(E_Desk_Group *edg);
-
-
-E_API   Eina_Bool     e_desk_group_ec_add(E_Desk_Group *edg, E_Client *ec);
-E_API   void          e_desk_group_ec_remove(E_Desk_Group *edg, E_Client *ec);
-EINTERN void          e_desk_group_ec_raise(E_Desk_Group *edg, E_Client *ec);
-EINTERN void          e_desk_group_ec_lower(E_Desk_Group *edg, E_Client *ec);
-EINTERN void          e_desk_group_ec_stack_above(E_Desk_Group *edg, E_Client *ec, E_Client *above);
-EINTERN void          e_desk_group_ec_stack_below(E_Desk_Group *edg, E_Client *ec, E_Client *below);
-EINTERN void          e_desk_group_ec_layer_set(E_Desk_Group *edg, E_Client *ec, E_Layer layer);
-EINTERN void          e_desk_group_ec_rearrange(E_Desk_Group *edg, E_Client *ec);
-EINTERN void          e_desk_group_ec_stack_change(E_Desk_Group *edg, E_Client *ec);
-
-E_API   void          e_desk_group_ec_update(E_Desk_Group *edg, E_Client *ec);
-E_API   void          e_desk_group_all_ec_update(E_Desk_Group *edg);
-
-E_API   Eina_List    *e_desk_group_ec_list_get(E_Desk_Group *edg);
-
-E_API void            e_desk_group_transform_enable_set(E_Desk_Group *edg, Eina_Bool enable);
-E_API Eina_Bool       e_desk_group_transform_enable_get(E_Desk_Group *edg);
-
-// for debug
-EINTERN void          e_desk_group_info_print(E_Desk_Group *edg);
-
-EINTERN Eina_Bool        e_desk_group_hook_call(E_Desk_Group *edg, E_Desk_Group_Hook_Point hookpoint, void *data);
-E_API E_Desk_Group_Hook *e_desk_group_hook_add(E_Desk_Group_Hook_Point hookpoint, E_Desk_Group_Hook_Cb func, const void *data);
-E_API void               e_desk_group_hook_del(E_Desk_Group_Hook *dgh);
-
-extern E_API int E_EVENT_DESK_GROUP_CHANGE;
-
-#endif
-#endif
index d4c6f5e..7042d51 100644 (file)
@@ -92,7 +92,7 @@
 #include "e_comp_wl_video.h"
 #include "e_comp_wl_video_buffer.h"
 #include "e_msg.h"
-#include "e_desk_group.h"
+#include "e_desk_area.h"
 #include "e_comp_wl_capture.h"
 #include "e_comp_wl_tizen_hwc.h"
 #include "e_comp_wl_renderer.h"
index 1dc9b5a..f6776c5 100644 (file)
@@ -2816,7 +2816,7 @@ arg_err:
 }
 
 static void
-_e_info_client_proc_desk_group(int argc, char **argv)
+_e_info_client_proc_desk_area(int argc, char **argv)
 {
    const int offset = 2, base_cmd_len = 1;
    Eina_Bool res = EINA_FALSE;
@@ -2827,7 +2827,7 @@ _e_info_client_proc_desk_group(int argc, char **argv)
 
    if (eina_streq(argv[offset], "info"))
      {
-        res = _e_info_client_eldbus_message("desk_group_info", NULL);
+        res = _e_info_client_eldbus_message("desk_area_info", NULL);
      }
    else if (eina_streq(argv[offset], "enable"))
      {
@@ -2840,7 +2840,7 @@ _e_info_client_proc_desk_group(int argc, char **argv)
 
         if (enable == 1 || enable == 0)
           {
-             res = _e_info_client_eldbus_message_with_args("desk_group_enable", NULL, "i", enable);
+             res = _e_info_client_eldbus_message_with_args("desk_area_enable", NULL, "i", enable);
           }
      }
    else if (eina_streq(argv[offset], "make_sub1"))
@@ -2857,7 +2857,7 @@ _e_info_client_proc_desk_group(int argc, char **argv)
         h = atoi(argv[offset + base_cmd_len + 3]);
         layer = atoi(argv[offset + base_cmd_len + 4]);
 
-        res = _e_info_client_eldbus_message_with_args("desk_group_new_sub1", NULL, "iiiii", x, y, w, h, layer);
+        res = _e_info_client_eldbus_message_with_args("desk_area_new_sub1", NULL, "iiiii", x, y, w, h, layer);
      }
    else if (eina_streq(argv[offset], "make_sub2"))
      {
@@ -2873,17 +2873,17 @@ _e_info_client_proc_desk_group(int argc, char **argv)
         h = atoi(argv[offset + base_cmd_len + 3]);
         layer = atoi(argv[offset + base_cmd_len + 4]);
 
-        res = _e_info_client_eldbus_message_with_args("desk_group_new_sub2", NULL, "iiiii", x, y, w, h, layer);
+        res = _e_info_client_eldbus_message_with_args("desk_area_new_sub2", NULL, "iiiii", x, y, w, h, layer);
      }
    else if (eina_streq(argv[offset], "remove_sub1"))
      {
         uint32_t id = 1;
-        res = _e_info_client_eldbus_message_with_args("desk_group_remove_sub", NULL, "i", id);
+        res = _e_info_client_eldbus_message_with_args("desk_area_remove_sub", NULL, "i", id);
      }
    else if (eina_streq(argv[offset], "remove_sub2"))
      {
         uint32_t id = 2;
-        res = _e_info_client_eldbus_message_with_args("desk_group_remove_sub", NULL, "i", id);
+        res = _e_info_client_eldbus_message_with_args("desk_area_remove_sub", NULL, "i", id);
      }
    else if (eina_streq(argv[offset], "raise_base"))
      {
@@ -2896,7 +2896,7 @@ _e_info_client_proc_desk_group(int argc, char **argv)
 
         if (raise == 1 || raise == 0)
           {
-             res = _e_info_client_eldbus_message_with_args("desk_group_base_raise", NULL, "i", raise);
+             res = _e_info_client_eldbus_message_with_args("desk_area_base_raise", NULL, "i", raise);
           }
      }
    else if (eina_streq(argv[offset], "raise_sub1"))
@@ -2910,7 +2910,7 @@ _e_info_client_proc_desk_group(int argc, char **argv)
 
         if (raise == 1 || raise == 0)
           {
-             res = _e_info_client_eldbus_message_with_args("desk_group_sub1_raise", NULL, "i", raise);
+             res = _e_info_client_eldbus_message_with_args("desk_area_sub1_raise", NULL, "i", raise);
           }
      }
    else if (eina_streq(argv[offset], "raise_sub2"))
@@ -2924,12 +2924,12 @@ _e_info_client_proc_desk_group(int argc, char **argv)
 
         if (raise == 1 || raise == 0)
           {
-             res = _e_info_client_eldbus_message_with_args("desk_group_sub2_raise", NULL, "i", raise);
+             res = _e_info_client_eldbus_message_with_args("desk_area_sub2_raise", NULL, "i", raise);
           }
      }
    else if (eina_streq(argv[offset], "check_stack"))
      {
-        res = _e_info_client_eldbus_message("desk_group_check_stack", NULL);
+        res = _e_info_client_eldbus_message("desk_area_check_stack", NULL);
      }
 
    else
@@ -2943,7 +2943,7 @@ _e_info_client_proc_desk_group(int argc, char **argv)
 
    return;
 arg_err:
-   printf("Usage: enlightenment_info -desk_group -h\n");
+   printf("Usage: enlightenment_info -desk_area -h\n");
 }
 
 static void
@@ -7065,10 +7065,10 @@ static ProcInfo procs_to_execute[] =
       _e_info_client_proc_apply_filter
    },
    {
-      "desk_group",
-      USAGE_DESK_GROUP,
+      "desk_area",
+      USAGE_DESK_AREA,
       "Get information or Enable/Disable functionality for desk group",
-      _e_info_client_proc_desk_group
+      _e_info_client_proc_desk_area
    },
    {
       "gcov",
index 353409d..24ac6fb 100644 (file)
@@ -4144,11 +4144,11 @@ _e_info_server_cb_desk_zoom(const Eldbus_Service_Interface *iface EINA_UNUSED, c
    return reply;
 }
 
-static E_Desk_Group *_edg_sub1 = NULL;
-static E_Desk_Group *_edg_sub2 = NULL;
+static E_Desk_Area *_edg_sub1 = NULL;
+static E_Desk_Area *_edg_sub2 = NULL;
 
 static Eldbus_Message *
-_e_info_server_cb_desk_group_info(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
+_e_info_server_cb_desk_area_info(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
 {
    Eldbus_Message *reply = eldbus_message_method_return_new(msg);
    E_Zone *zone;
@@ -4157,13 +4157,13 @@ _e_info_server_cb_desk_group_info(const Eldbus_Service_Interface *iface EINA_UNU
    zone = e_zone_current_get();
    desk = e_desk_current_get(zone);
 
-   e_desk_desk_group_info_print(desk);
+   e_desk_desk_area_info_print(desk);
 
    return reply;
 }
 
 static Eldbus_Message *
-_e_info_server_cb_desk_group_enable(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
+_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);
    uint32_t enable;
@@ -4176,61 +4176,61 @@ _e_info_server_cb_desk_group_enable(const Eldbus_Service_Interface *iface EINA_U
 
    if (enable == 1)
      {
-        e_desk_desk_group_enable(e_desk_current_get(e_zone_current_get()));
+        e_desk_desk_area_enable(e_desk_current_get(e_zone_current_get()));
      }
    else if (enable == 0)
      {
-        e_desk_desk_group_disable(e_desk_current_get(e_zone_current_get()));
+        e_desk_desk_area_disable(e_desk_current_get(e_zone_current_get()));
      }
 
    return reply;
 }
 
-static void _desk_group_new(int sub_edg_id, int x, int y, int w, int h, int layer)
+static void _desk_area_new(int sub_edg_id, int x, int y, int w, int h, int layer)
 {
    E_Zone *zone;
    E_Desk *desk;
-   E_Desk_Group_Layer edg_layer;
+   E_Desk_Area_Layer edg_layer;
 
    zone = e_zone_current_get();
    desk = e_desk_current_get(zone);
 
    switch (layer)
      {
-      case 0:  edg_layer = E_DESK_GROUP_LAYER_BACKGROUND; break;
-      case 1:  edg_layer = E_DESK_GROUP_LAYER_NORMAL_BELOW; break;
-      case 2:  edg_layer = E_DESK_GROUP_LAYER_NORMAL; break;
-      case 3:  edg_layer = E_DESK_GROUP_LAYER_NORMAL_ABOVE; break;
-      case 4:  edg_layer = E_DESK_GROUP_LAYER_NOTIFICATION_LOW; break;
-      case 5:  edg_layer = E_DESK_GROUP_LAYER_NOTIFICATION_NORMAL; break;
-      case 6:  edg_layer = E_DESK_GROUP_LAYER_NOTIFICATION_HIGH; break;
-      default:  edg_layer = E_DESK_GROUP_LAYER_NORMAL; break;
+      case 0:  edg_layer = E_DESK_AREA_LAYER_BACKGROUND; break;
+      case 1:  edg_layer = E_DESK_AREA_LAYER_NORMAL_BELOW; break;
+      case 2:  edg_layer = E_DESK_AREA_LAYER_NORMAL; break;
+      case 3:  edg_layer = E_DESK_AREA_LAYER_NORMAL_ABOVE; break;
+      case 4:  edg_layer = E_DESK_AREA_LAYER_NOTIFICATION_LOW; break;
+      case 5:  edg_layer = E_DESK_AREA_LAYER_NOTIFICATION_NORMAL; break;
+      case 6:  edg_layer = E_DESK_AREA_LAYER_NOTIFICATION_HIGH; break;
+      default:  edg_layer = E_DESK_AREA_LAYER_NORMAL; break;
      }
 
    if (sub_edg_id == 1)
      {
         if (!_edg_sub1)
-          _edg_sub1 = e_desk_desk_group_add(desk, x, y, w, h, edg_layer);
+          _edg_sub1 = e_desk_desk_area_add(desk, x, y, w, h, edg_layer);
         else
           {
-             e_desk_group_geometry_set(_edg_sub1, x, y, w, h);
-             e_desk_group_layer_set(_edg_sub1, edg_layer);
+             e_desk_area_geometry_set(_edg_sub1, x, y, w, h);
+             e_desk_area_layer_set(_edg_sub1, edg_layer);
           }
      }
    else if (sub_edg_id == 2)
      {
         if (!_edg_sub2)
-          _edg_sub2 = e_desk_desk_group_add(desk, x, y, w, h, edg_layer);
+          _edg_sub2 = e_desk_desk_area_add(desk, x, y, w, h, edg_layer);
         else
           {
-             e_desk_group_geometry_set(_edg_sub2, x, y, w, h);
-             e_desk_group_layer_set(_edg_sub2, edg_layer);
+             e_desk_area_geometry_set(_edg_sub2, x, y, w, h);
+             e_desk_area_layer_set(_edg_sub2, edg_layer);
           }
      }
 }
 
 static Eldbus_Message *
-_e_info_server_cb_desk_group_new_sub1(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
+_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);
    E_Client *ec;
@@ -4245,7 +4245,7 @@ _e_info_server_cb_desk_group_new_sub1(const Eldbus_Service_Interface *iface EINA
         return reply;
      }
 
-   _desk_group_new(1, x, y, w, h, layer);
+   _desk_area_new(1, x, y, w, h, layer);
 
    E_CLIENT_REVERSE_FOREACH(ec)
      {
@@ -4254,16 +4254,16 @@ _e_info_server_cb_desk_group_new_sub1(const Eldbus_Service_Interface *iface EINA
 
    EINA_LIST_REVERSE_FOREACH(ec_list, l, ec)
      {
-        e_client_desk_group_set(ec, _edg_sub1);
+        e_client_desk_area_set(ec, _edg_sub1);
      }
 
-   //e_desk_group_all_ec_update(_edg_sub1);
+   //e_desk_area_all_ec_update(_edg_sub1);
 
    return reply;
 }
 
 static Eldbus_Message *
-_e_info_server_cb_desk_group_new_sub2(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
+_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);
    int x, y, w, h;
@@ -4276,21 +4276,21 @@ _e_info_server_cb_desk_group_new_sub2(const Eldbus_Service_Interface *iface EINA
         return reply;
      }
 
-   _desk_group_new(2, x, y, w, h, layer);
+   _desk_area_new(2, x, y, w, h, layer);
 
    E_CLIENT_FOREACH(ec)
      {
         if (e_policy_client_is_home_screen(ec))
-          e_client_desk_group_set(ec, _edg_sub2);
+          e_client_desk_area_set(ec, _edg_sub2);
         else if (e_policy_client_is_quickpanel(ec))
-          e_client_desk_group_set(ec, _edg_sub2);
+          e_client_desk_area_set(ec, _edg_sub2);
      }
 
    return reply;
 }
 
 static Eldbus_Message *
-_e_info_server_cb_desk_group_remove_sub(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
+_e_info_server_cb_desk_area_remove_sub(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
 {
    Eldbus_Message *reply = eldbus_message_method_return_new(msg);
    uint32_t sub_edg_id;
@@ -4308,12 +4308,12 @@ _e_info_server_cb_desk_group_remove_sub(const Eldbus_Service_Interface *iface EI
 
    if (sub_edg_id == 1)
      {
-        e_desk_desk_group_del(desk, _edg_sub1);
+        e_desk_desk_area_del(desk, _edg_sub1);
         _edg_sub1 = NULL;
      }
    else if (sub_edg_id == 2)
      {
-        e_desk_desk_group_del(desk, _edg_sub2);
+        e_desk_desk_area_del(desk, _edg_sub2);
         _edg_sub2 = NULL;
      }
 
@@ -4321,7 +4321,7 @@ _e_info_server_cb_desk_group_remove_sub(const Eldbus_Service_Interface *iface EI
 }
 
 static void
-_desk_group_raise(E_Desk_Group *edg, uint32_t raise)
+_desk_area_raise(E_Desk_Area *eda, uint32_t raise)
 {
    E_Zone *zone;
    E_Desk *desk;
@@ -4330,26 +4330,26 @@ _desk_group_raise(E_Desk_Group *edg, uint32_t raise)
    desk = e_desk_current_get(zone);
    if (!desk) return;
 
-   if (!edg)
-     edg = desk->desk_group.base;
+   if (!eda)
+     eda = desk->desk_area.base;
 
-   if (edg)
+   if (eda)
      {
         if (raise == 1)
           {
-             //e_desk_group_raise(edg);
-             e_desk_desk_group_raise(edg->desk, edg);
+             //e_desk_area_raise(eda);
+             e_desk_desk_area_raise(eda->desk, eda);
           }
         else if (raise == 0)
           {
-             //e_desk_group_lower(edg);
-             e_desk_desk_group_lower(edg->desk, edg);
+             //e_desk_area_lower(eda);
+             e_desk_desk_area_lower(eda->desk, eda);
           }
      }
 }
 
 static Eldbus_Message *
-_e_info_server_cb_desk_group_base_raise(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
+_e_info_server_cb_desk_area_base_raise(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
 {
    Eldbus_Message *reply = eldbus_message_method_return_new(msg);
    uint32_t raise;
@@ -4360,13 +4360,13 @@ _e_info_server_cb_desk_group_base_raise(const Eldbus_Service_Interface *iface EI
         return reply;
      }
 
-   _desk_group_raise(NULL, raise);
+   _desk_area_raise(NULL, raise);
 
    return reply;
 }
 
 static Eldbus_Message *
-_e_info_server_cb_desk_group_sub1_raise(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
+_e_info_server_cb_desk_area_sub1_raise(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
 {
    Eldbus_Message *reply = eldbus_message_method_return_new(msg);
    uint32_t raise;
@@ -4378,13 +4378,13 @@ _e_info_server_cb_desk_group_sub1_raise(const Eldbus_Service_Interface *iface EI
      }
 
    if (_edg_sub1)
-     _desk_group_raise(_edg_sub1, raise);
+     _desk_area_raise(_edg_sub1, raise);
 
    return reply;
 }
 
 static Eldbus_Message *
-_e_info_server_cb_desk_group_sub2_raise(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
+_e_info_server_cb_desk_area_sub2_raise(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
 {
    Eldbus_Message *reply = eldbus_message_method_return_new(msg);
    uint32_t raise;
@@ -4396,18 +4396,18 @@ _e_info_server_cb_desk_group_sub2_raise(const Eldbus_Service_Interface *iface EI
      }
 
    if (_edg_sub2)
-     _desk_group_raise(_edg_sub2, raise);
+     _desk_area_raise(_edg_sub2, raise);
 
    return reply;
 }
 
 static Eldbus_Message *
-_e_info_server_cb_desk_group_check_stack(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
+_e_info_server_cb_desk_area_check_stack(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
 {
    Eldbus_Message *reply = eldbus_message_method_return_new(msg);
    E_Zone *zone;
    E_Desk *desk;
-   E_Desk_Group *edg = NULL;
+   E_Desk_Area *eda = NULL;
    Eina_List *l;
    Eina_List *ll;
    Eina_List *edg_ecs_list = NULL;
@@ -4421,23 +4421,23 @@ _e_info_server_cb_desk_group_check_stack(const Eldbus_Service_Interface *iface E
    desk = e_desk_current_get(zone);
    if (!desk)
      {
-        ELOGF("EDG_TEST", "No current Desk_Group at a current Zoen... return", NULL);
+        ELOGF("EDG_TEST", "No current Desk_Area at a current Zoen... return", NULL);
         return reply;
      }
 
-   if (!desk->desk_group.enable)
+   if (!desk->desk_area.enable)
      {
-        ELOGF("EDG_TEST", "Desk_Group is not enable... return", NULL);
+        ELOGF("EDG_TEST", "Desk_Area is not enable... return", NULL);
         return reply;
      }
 
-   for (i=E_DESK_GROUP_LAYER_COUNT-1; i>=0; i--)
+   for (i=E_DESK_AREA_LAYER_COUNT-1; i>=0; i--)
      {
-        EINA_LIST_FOREACH(desk->desk_group.list[i], l, edg)
+        EINA_LIST_FOREACH(desk->desk_area.list[i], l, eda)
           {
-             for (j=E_DESK_GROUP_CLIENT_LAYER_MAX-1; j>=0; j--)
+             for (j=E_DESK_AREA_CLIENT_LAYER_MAX-1; j>=0; j--)
                {
-                  EINA_LIST_FOREACH(edg->ec_lists[j], ll, edg_ec)
+                  EINA_LIST_FOREACH(eda->ec_lists[j], ll, edg_ec)
                     {
                        edg_ecs_list = eina_list_append(edg_ecs_list, edg_ec);
                     }
@@ -7749,15 +7749,15 @@ static const Eldbus_Method methods[] = {
    { "desktop_geometry_set", ELDBUS_ARGS({"iiii", "Geometry"}), NULL, _e_info_server_cb_desktop_geometry_set, 0},
    { "desktop_window_control", ELDBUS_ARGS({"i", "Window Control option"}), NULL, _e_info_server_cb_desktop_window_control, 0},
    { "desk_zoom", ELDBUS_ARGS({"ddii", "Zoom"}), NULL, _e_info_server_cb_desk_zoom, 0},
-   { "desk_group_info", NULL, NULL, _e_info_server_cb_desk_group_info, 0},
-   { "desk_group_enable", ELDBUS_ARGS({"i", "enable"}), NULL, _e_info_server_cb_desk_group_enable, 0},
-   { "desk_group_new_sub1", ELDBUS_ARGS({"iiiii", "geometry"}), NULL, _e_info_server_cb_desk_group_new_sub1, 0},
-   { "desk_group_new_sub2", ELDBUS_ARGS({"iiiii", "geometry"}), NULL, _e_info_server_cb_desk_group_new_sub2, 0},
-   { "desk_group_remove_sub", ELDBUS_ARGS({"i", "sub_id"}), NULL, _e_info_server_cb_desk_group_remove_sub, 0},
-   { "desk_group_base_raise", ELDBUS_ARGS({"i", "raise"}), NULL, _e_info_server_cb_desk_group_base_raise, 0},
-   { "desk_group_sub1_raise", ELDBUS_ARGS({"i", "raise"}), NULL, _e_info_server_cb_desk_group_sub1_raise, 0},
-   { "desk_group_sub2_raise", ELDBUS_ARGS({"i", "raise"}), NULL, _e_info_server_cb_desk_group_sub2_raise, 0},
-   { "desk_group_check_stack", NULL, NULL, _e_info_server_cb_desk_group_check_stack, 0},
+   { "desk_area_info", NULL, NULL, _e_info_server_cb_desk_area_info, 0},
+   { "desk_area_enable", ELDBUS_ARGS({"i", "enable"}), NULL, _e_info_server_cb_desk_area_enable, 0},
+   { "desk_area_new_sub1", ELDBUS_ARGS({"iiiii", "geometry"}), NULL, _e_info_server_cb_desk_area_new_sub1, 0},
+   { "desk_area_new_sub2", ELDBUS_ARGS({"iiiii", "geometry"}), NULL, _e_info_server_cb_desk_area_new_sub2, 0},
+   { "desk_area_remove_sub", ELDBUS_ARGS({"i", "sub_id"}), NULL, _e_info_server_cb_desk_area_remove_sub, 0},
+   { "desk_area_base_raise", ELDBUS_ARGS({"i", "raise"}), NULL, _e_info_server_cb_desk_area_base_raise, 0},
+   { "desk_area_sub1_raise", ELDBUS_ARGS({"i", "raise"}), NULL, _e_info_server_cb_desk_area_sub1_raise, 0},
+   { "desk_area_sub2_raise", ELDBUS_ARGS({"i", "raise"}), NULL, _e_info_server_cb_desk_area_sub2_raise, 0},
+   { "desk_area_check_stack", NULL, NULL, _e_info_server_cb_desk_area_check_stack, 0},
    { "frender", ELDBUS_ARGS({"i", "frender"}), ELDBUS_ARGS({"s", "force_render_result"}), _e_info_server_cb_force_render, 0},
    { "screen_rotation_pre", ELDBUS_ARGS({"i", "value"}), NULL, _e_info_server_cb_screen_rotation_pre, 0},
    { "screen_rotation", ELDBUS_ARGS({"i", "value"}), NULL, _e_info_server_cb_screen_rotation, 0},
index 9f75619..112491e 100644 (file)
@@ -333,29 +333,29 @@ typedef enum
 /* -------------------------------------------------------------------------- */
 /* DESK GROUP                                                                 */
 /* -------------------------------------------------------------------------- */
-#define USAGE_DESK_GROUP                                                 \
+#define USAGE_DESK_AREA                                                 \
    "[Option..] [DIR]\n"                                                  \
    "\tinfo                          : print desk group information\n"    \
-   "\tenable [1:enable, 0:disable]  : enable/disable desk_group\n"       \
-   "\tmake_sub1 [x][y][w][h][layer 0:bg, 1:below, 2:normal, 3:above, 4~6:noti] : make sub1 desk_group\n" \
-   "\tmake_sub2 [x][y][w][h][layer 0:bg, 1:below, 2:normal, 3:above, 4~6:noti] : make sub2 desk_group\n" \
-   "\tremove_sub1                   : remove sub1 desk_group\n"          \
-   "\tremove_sub2                   : remove sub2 desk_group\n"          \
-   "\traise_base [1:raise, 0:lower] : raise/lower base desk_group\n"     \
-   "\traise_sub1 [1:raise, 0:lower] : raise/lower sub1 desk_group\n"     \
-   "\traise_sub2 [1:raise, 0:lower] : raise/lower sub2 desk_group\n"     \
+   "\tenable [1:enable, 0:disable]  : enable/disable desk_area\n"       \
+   "\tmake_sub1 [x][y][w][h][layer 0:bg, 1:below, 2:normal, 3:above, 4~6:noti] : make sub1 desk_area\n" \
+   "\tmake_sub2 [x][y][w][h][layer 0:bg, 1:below, 2:normal, 3:above, 4~6:noti] : make sub2 desk_area\n" \
+   "\tremove_sub1                   : remove sub1 desk_area\n"          \
+   "\tremove_sub2                   : remove sub2 desk_area\n"          \
+   "\traise_base [1:raise, 0:lower] : raise/lower base desk_area\n"     \
+   "\traise_sub1 [1:raise, 0:lower] : raise/lower sub1 desk_area\n"     \
+   "\traise_sub2 [1:raise, 0:lower] : raise/lower sub2 desk_area\n"     \
    "\tcheck_stack                   : check stack\n"                     \
    "Example:\n"                                                          \
-   "\twinfo -desk_group info\n"                                          \
-   "\twinfo -desk_group enable 1\n"                                      \
-   "\twinfo -desk_group make_sub1 240 480 480 800 2\n"                   \
-   "\twinfo -desk_group make_sub2 310 80 320 480 2\n"                    \
-   "\twinfo -desk_group remove_sub1\n"                                   \
-   "\twinfo -desk_group remove_sub2\n"                                   \
-   "\twinfo -desk_group raise_base 1\n"                                  \
-   "\twinfo -desk_group raise_sub1 1\n"                                  \
-   "\twinfo -desk_group raise_sub2 0\n"                                  \
-   "\twinfo -desk_group check_stack\n"
+   "\twinfo -desk_area info\n"                                          \
+   "\twinfo -desk_area enable 1\n"                                      \
+   "\twinfo -desk_area make_sub1 240 480 480 800 2\n"                   \
+   "\twinfo -desk_area make_sub2 310 80 320 480 2\n"                    \
+   "\twinfo -desk_area remove_sub1\n"                                   \
+   "\twinfo -desk_area remove_sub2\n"                                   \
+   "\twinfo -desk_area raise_base 1\n"                                  \
+   "\twinfo -desk_area raise_sub1 1\n"                                  \
+   "\twinfo -desk_area raise_sub2 0\n"                                  \
+   "\twinfo -desk_area check_stack\n"
 
 /* -------------------------------------------------------------------------- */
 /* BASIC_OPERATION_GENERATE                                                   */
index 8385bf9..b0668b1 100644 (file)
@@ -60,13 +60,13 @@ _e_policy_stack_transient_for_apply(E_Client *ec)
         return;
      }
 
-   if (ec->desk_group.enable)
+   if (ec->desk_area.enable)
      {
         E_Layer layer;
         E_Layer parent_layer;
 
-        layer = e_client_desk_group_original_layer_get(ec);
-        parent_layer = e_client_desk_group_original_layer_get(ec->parent);
+        layer = e_client_desk_area_original_layer_get(ec);
+        parent_layer = e_client_desk_area_original_layer_get(ec->parent);
 
         if (parent_layer != layer)
           {
@@ -79,7 +79,7 @@ _e_policy_stack_transient_for_apply(E_Client *ec)
                   EINA_LIST_FOREACH(ec->transients, l, child)
                     {
                        if (!child) continue;
-                       child->saved.layer = e_client_desk_group_original_layer_get(child);
+                       child->saved.layer = e_client_desk_area_original_layer_get(child);
                     }
                }
 
@@ -272,11 +272,11 @@ _e_policy_stack_fetch_transient(E_Client *ec)
 
    if (parent)
      {
-        if (ec->desk_group.desk_group && parent->desk_group.desk_group)
+        if (ec->desk_area.desk_area && parent->desk_area.desk_area)
           {
-             if (ec->desk_group.desk_group != parent->desk_group.desk_group)
+             if (ec->desk_area.desk_area != parent->desk_area.desk_area)
                {
-                  e_client_desk_group_set(ec, parent->desk_group.desk_group);
+                  e_client_desk_area_set(ec, parent->desk_area.desk_area);
                }
           }
      }
index 3ba78ce..4f66d56 100644 (file)
@@ -1896,8 +1896,8 @@ _tzpol_notilv_set(E_Client *ec, int lv)
       default: ly = E_LAYER_CLIENT_NOTIFICATION_LOW;    break;
      }
 
-   if (e_config->use_desk_group)
-     cur_ly = e_client_desk_group_original_layer_get(ec);
+   if (e_config->use_desk_area)
+     cur_ly = e_client_desk_area_original_layer_get(ec);
    else
      cur_ly = e_client_layer_get(ec);
 
index 3369d30..13fec5e 100644 (file)
@@ -1647,10 +1647,10 @@ _e_zone_screen_cb_get_splitscreen(struct wl_client *client,
               &_e_zone_splitscreen_interface, zone,
               _e_zone_splitscreen_cb_resource_destroy);
 
-   // The splitscreen_regions are the e_desk_groups associated with this
+   // The splitscreen_regions are the e_desk_areas associated with this
    // E_Zone(E_Desk) and these are already created by the e20 module with the
    // specifc policy. So e20 sends the splitscreen_regions associated with each
-   // e_desk_group.
+   // e_desk_area.
    desk = e_desk_current_get(zone);
    if (!e_desk_splitscreen_regions_all_generate(desk, client, ss_res, id))
     {
index f97d46d..de484f2 100644 (file)
@@ -14,8 +14,8 @@ e_service_lockscreen_client_set(E_Client *ec)
    e_client_window_role_set(ec, "lockscreen");
 
    // set lockscreen layer
-   if (e_config->use_desk_group)
-     layer = e_client_desk_group_original_layer_get(ec);
+   if (e_config->use_desk_area)
+     layer = e_client_desk_area_original_layer_get(ec);
    else
      layer = e_client_layer_get(ec);
 
index 25ba1ad..dd6bd99 100644 (file)
@@ -2267,8 +2267,8 @@ e_service_quickpanel_client_add(E_Client *ec, E_Service_Quickpanel_Type type)
      }
 
    // set quickpanel layer
-   if (e_config->use_desk_group)
-     layer = e_client_desk_group_original_layer_get(ec);
+   if (e_config->use_desk_area)
+     layer = e_client_desk_area_original_layer_get(ec);
    else
      layer = e_client_layer_get(ec);
 
index bd464db..0eeb6f0 100644 (file)
@@ -12,8 +12,8 @@ e_service_scrsaver_client_set(E_Client *ec)
    ELOGF("SCRSAVER","Set Client", ec);
 
    // set screensaver layer
-   if (e_config->use_desk_group)
-     layer = e_client_desk_group_original_layer_get(ec);
+   if (e_config->use_desk_area)
+     layer = e_client_desk_area_original_layer_get(ec);
    else
      layer = e_client_layer_get(ec);
 
index faaa873..9e8a7ff 100644 (file)
@@ -293,8 +293,8 @@ e_service_volume_client_set(E_Client *ec)
       e_client_hook_add(E_CLIENT_HOOK_DEL, _volume_hook_client_del, NULL);
 
    // set volume layer
-   if (e_config->use_desk_group)
-     layer = e_client_desk_group_original_layer_get(ec);
+   if (e_config->use_desk_area)
+     layer = e_client_desk_area_original_layer_get(ec);
    else
      layer = e_client_layer_get(ec);