e_canvas: change e_canvas_layer to layer tree of desk area 33/325433/1
authorJunseok Kim <juns.kim@samsung.com>
Thu, 3 Apr 2025 10:04:08 +0000 (19:04 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Tue, 10 Jun 2025 09:37:49 +0000 (18:37 +0900)
Change-Id: I183c641876ac7a09d33ae0c1fdc99c4d3435348e

src/bin/compmgr/e_blur_video_capture.c
src/bin/compmgr/e_comp_canvas.c
src/bin/core/e_client.c
src/bin/core/e_view_layout.c
src/bin/server/e_blur.c
src/bin/windowmgr/e_dnd.c
src/bin/windowmgr/e_magnifier.c
src/bin/windowmgr/e_policy_desk_area.c
src/bin/windowmgr/services/e_service_quickpanel.c
src/bin/windowmgr/services/e_service_softkey.c
src/bin/windowmgr/services/e_service_volume.c

index 0fc850242ab9ad6fa55bb59a95b296cab0c6c531..3057106ed0823eb72be8f3a8a50fee8109769295 100644 (file)
@@ -7,6 +7,7 @@
 #include "e_view_image_intern.h"
 #include "e_view_rect.h"
 #include "e_blur_video_capture.h"
+#include "e_canvas_intern.h"
 
 #define DEQUEUE_TIMEOUT_MS 10000
 
@@ -156,15 +157,15 @@ _e_blur_video_capture_source_object_init(void)
    E_Blur_Video_Capture *video_capture = _video_capture;
    E_Blur_Video_Capture_Client *client;
    E_Blur_Video_Capture_Object *object;
-   E_View_Tree *layer_tree;
+   E_View_Tree *view_tree;
    E_View_Image *view_image;
    E_View *img_view;
    Eina_List *l, *l2;
 
    if (video_capture->src_img) return EINA_TRUE;
 
-   layer_tree = e_canvas_layer_view_tree_get(e_comp_canvas_get(), E_CANVAS_LAYER_BOTTOM);
-   view_image = e_view_image_filled_create(layer_tree);
+   view_tree = e_canvas_root_view_tree_get(e_comp_canvas_get());
+   view_image = e_view_image_filled_create(view_tree);
    EINA_SAFETY_ON_NULL_RETURN_VAL(view_image, EINA_FALSE);
 
    img_view = e_view_image_view_get(view_image);
@@ -312,8 +313,7 @@ _e_blur_video_capture_object_create(E_Blur_Video_Capture_Client *client, E_View_
    E_View *blur_img_view, *client_view;
    E_View *src_clip_rect_view = NULL, *src_img_view = NULL, *blur_clip_img_view = NULL;
    E_View_Client *view_client;
-   E_View_Tree *layer_tree;
-   E_Canvas_Layer layer;
+   E_View_Tree *view_tree;
    int x, y, w, h;
    int ec_x, ec_y, ec_w, ec_h;
    unsigned int *pixels;
@@ -325,13 +325,12 @@ _e_blur_video_capture_object_create(E_Blur_Video_Capture_Client *client, E_View_
    view_client = e_client_view_get(client->ec);
    if (!view_client) return NULL;
    client_view = e_view_client_view_get(view_client);
-   layer = e_view_layer_index_get(client_view);
-   layer_tree = e_canvas_layer_view_tree_get(e_comp_canvas_get(), layer);
+   view_tree = e_view_parent_get(client_view);
 
    object = E_NEW(E_Blur_Video_Capture_Object, 1);
    EINA_SAFETY_ON_NULL_RETURN_VAL(object, NULL);
 
-   object->blur_clip_img = e_view_image_filled_create(layer_tree);
+   object->blur_clip_img = e_view_image_filled_create(view_tree);
    EINA_SAFETY_ON_NULL_GOTO(object->blur_clip_img, fail);
    e_view_image_size_set(object->blur_clip_img, 1, 1);
    pixels = e_view_image_data_get(object->blur_clip_img, EINA_TRUE);
@@ -344,14 +343,14 @@ _e_blur_video_capture_object_create(E_Blur_Video_Capture_Client *client, E_View_
    e_view_pass_events_set(blur_clip_img_view, EINA_TRUE);
 
    e_client_geometry_get(client->ec, &ec_x, &ec_y, &ec_w, &ec_h);
-   object->src_clip_rect = e_view_rect_create(layer_tree, ec_w, ec_h, color);
+   object->src_clip_rect = e_view_rect_create(view_tree, ec_w, ec_h, color);
    EINA_SAFETY_ON_NULL_GOTO(object->src_clip_rect, fail);
    src_clip_rect_view = e_view_rect_view_get(object->src_clip_rect);
    e_view_position_set(src_clip_rect_view, ec_x, ec_y);
    e_view_name_set(src_clip_rect_view, "blur_video_capture_source_clip_obj");
    e_view_pass_events_set(src_clip_rect_view, EINA_TRUE);
 
-   object->src_img = e_view_image_filled_create(layer_tree);
+   object->src_img = e_view_image_filled_create(view_tree);
    EINA_SAFETY_ON_NULL_GOTO(object->src_img, fail);
    src_img_view = e_view_image_view_get(object->src_img);
    e_view_name_set(src_img_view, "blur_video_capture_source_obj");
@@ -927,10 +926,10 @@ _e_blur_video_capture_client_cb_restack(struct wl_listener *listener, void *data
    E_Blur_Video_Capture_Client *client = wl_container_of(listener, client, listener.restack);
    E_View *event_src_view = ((E_View_Event_Callback_Data *)data)->view;
    E_Blur_Video_Capture_Object *object;
-   E_View_Tree *layer_tree;
+   E_View_Tree *view_tree;
    Eina_List *l;
 
-   layer_tree = e_canvas_layer_view_tree_get(e_comp_canvas_get(), e_view_layer_index_get(event_src_view));
+   view_tree = e_view_parent_get(event_src_view);
 
    EINA_LIST_FOREACH(client->capture_objs, l, object)
      {
@@ -942,11 +941,11 @@ _e_blur_video_capture_client_cb_restack(struct wl_listener *listener, void *data
         src_clip_rect_view = e_view_rect_view_get(object->src_clip_rect);
         src_img_view = e_view_image_view_get(object->src_img);
 
-        e_view_reparent(blur_clip_img_view, layer_tree);
+        e_view_reparent(blur_clip_img_view, view_tree);
         e_view_place_above(blur_clip_img_view, event_src_view);
-        e_view_reparent(src_clip_rect_view, layer_tree);
+        e_view_reparent(src_clip_rect_view, view_tree);
         e_view_place_below(src_clip_rect_view, blur_clip_img_view);
-        e_view_reparent(src_img_view, layer_tree);
+        e_view_reparent(src_img_view, view_tree);
         e_view_place_below(src_img_view, src_clip_rect_view);
      }
 
@@ -960,11 +959,11 @@ _e_blur_video_capture_client_cb_restack(struct wl_listener *listener, void *data
         src_clip_rect_view = e_view_rect_view_get(object->src_clip_rect);
         src_img_view = e_view_image_view_get(object->src_img);
 
-        e_view_reparent(blur_clip_img_view, layer_tree);
+        e_view_reparent(blur_clip_img_view, view_tree);
         e_view_place_above(blur_clip_img_view, event_src_view);
-        e_view_reparent(src_clip_rect_view, layer_tree);
+        e_view_reparent(src_clip_rect_view, view_tree);
         e_view_place_below(src_clip_rect_view, blur_clip_img_view);
-        e_view_reparent(src_img_view, layer_tree);
+        e_view_reparent(src_img_view, view_tree);
         e_view_place_below(src_img_view, src_clip_rect_view);
      }
 }
index 0a453d4401ac09ba30db30b47bd5432cd5b10c7a..9bfe643f094100540ca88f3cea3e6b0e3dc7a07b 100644 (file)
@@ -324,7 +324,7 @@ e_comp_canvas_init(E_Comp_Screen *comp_screen)
    if (e_config->comp_canvas_bg.opmode == EVAS_RENDER_COPY)
      opmode = E_VIEW_RENDER_OP_COPY;
 
-   layer_tree = e_canvas_layer_view_tree_get(comp->canvas, E_CANVAS_LAYER_BOTTOM);
+   layer_tree = e_canvas_root_view_tree_get(comp->canvas);
    rect = e_view_rect_create(layer_tree, comp->w, comp->h, color);
    comp->bg_blank_view = view = e_view_rect_view_get(rect);
    e_view_position_set(view, 0, 0);
index c21baf9590ee30cb638467cad5f3e14a1e2a21e3..1786f32dd710d10871783e176d9ec8c2d6e29bc3 100644 (file)
@@ -2854,7 +2854,7 @@ _e_client_view_init(E_Client *ec)
    E_Client_Private *priv = PRI(ec);
    E_View_Tree *tree;
 
-   tree = e_canvas_layer_view_tree_get(e_comp_canvas_get(), E_CANVAS_LAYER_CLIENT_NORMAL);
+   tree = e_canvas_root_view_tree_get(e_comp_canvas_get());
 
    assert(tree);
 
index ed46a0f15c64454bfe6d420ce0f593e87d569386..1c66bb1112c01a75e3e9cd4b771c72e676fe87fa 100644 (file)
@@ -6,6 +6,10 @@
 #include "e_view_client_intern.h"
 #include "e_view_edje_intern.h"
 #include "e_canvas_intern.h"
+#include "e_zone_intern.h"
+#include "e_desk_intern.h"
+#include "e_desk_area_intern.h"
+#include "e_policy_desk_area_intern.h"
 
 typedef struct _E_View_Layout_Item E_View_Layout_Item;
 
@@ -113,6 +117,11 @@ static void
 _e_view_layout_disown(E_View *child)
 {
    E_View_Layout_Item *li;
+   E_Zone *zone;
+   E_Desk *desk;
+   E_Desk_Area *eda;
+   E_Policy_Desk_Area *pda;
+   E_View_Tree *layer_tree;
 
    li = e_view_data_get(child, "e_view_layout_data");
    if (!li) return;
@@ -126,7 +135,12 @@ _e_view_layout_disown(E_View *child)
 
    if (!li->destroying)
      {
-        e_view_reparent(child, e_canvas_layer_view_tree_get(e_canvas_get(child), li->prev_layer));
+        zone = e_zone_current_get();
+        desk = e_desk_current_get(zone);
+        eda = e_desk_desk_area_base_get(desk);
+        pda = e_policy_desk_area_get(eda);
+        layer_tree = e_policy_desk_area_layer_tree_get(pda, e_canvas_util_layer_map(li->prev_layer));
+        e_view_reparent(child, layer_tree);
      }
 
    free(li);
@@ -347,14 +361,20 @@ e_view_layout_layer_set(E_View_Layout *layout, E_Layer layer)
 {
    E_View_Layout_Item *li;
    E_View_Tree *layer_tree;
-   E_Canvas_Layer canvas_layer;
    E_View *view;
+   E_Zone *zone;
+   E_Desk *desk;
+   E_Desk_Area *eda;
+   E_Policy_Desk_Area *pda;
 
    if (!layout) return;
 
-   canvas_layer = e_canvas_util_e_layer_map(layer);
+   zone = e_zone_current_get();
+   desk = e_desk_current_get(zone);
+   eda = e_desk_desk_area_base_get(desk);
+   pda = e_policy_desk_area_get(eda);
 
-   layer_tree = e_canvas_layer_view_tree_get(e_canvas_get(e_view_tree_view_get(&layout->tree)), canvas_layer);
+   layer_tree = e_policy_desk_area_layer_tree_get(pda, layer);
 
    if (!wl_list_empty(&layout->items))
      {
index e76c8c5c71f188a2b0f44c1194e00b2300bbe37f..9b7c1acc563dfdbc7f24f1500994c3317af90a65 100644 (file)
@@ -512,39 +512,39 @@ _e_blur_cb_restack(struct wl_listener *listener, void *data)
    E_Blur *blur;
    Eina_List *l;
    E_Blur_Rectangle *blur_rectangle;
-   E_View_Tree *layer_tree;
+   E_View_Tree *view_tree;
    E_View *event_src_view = ((E_View_Event_Callback_Data *)data)->view;
 
    blur = wl_container_of(listener, blur, listener.restack);
    if (!event_src_view) return;
 
-   layer_tree = e_canvas_layer_view_tree_get(e_comp_canvas_get(), e_view_layer_index_get(event_src_view));
-   if (!layer_tree) return;
+   view_tree = e_view_parent_get(event_src_view);
+   if (!view_tree) return;
 
    EINA_LIST_FOREACH(blur->blur_rectangles, l, blur_rectangle)
      {
         E_View *img_view = e_view_image_view_get(blur_rectangle->view_image);
-        e_view_reparent(img_view, layer_tree);
+        e_view_reparent(img_view, view_tree);
         e_view_place_below(img_view, event_src_view);
 
         if (blur_rectangle->dim_rect)
           {
              E_View *dim_view = e_view_rect_view_get(blur_rectangle->dim_rect);
-             e_view_reparent(dim_view, layer_tree);
+             e_view_reparent(dim_view, view_tree);
              e_view_place_above(dim_view, img_view);
           }
 
         if (blur_rectangle->stroke_image)
           {
              E_View *stroke_view = e_view_image_view_get(blur_rectangle->stroke_image);
-             e_view_reparent(stroke_view, layer_tree);
+             e_view_reparent(stroke_view, view_tree);
              e_view_place_below(stroke_view, img_view);
           }
 
         if (blur_rectangle->corner_radius_image)
           {
              E_View *corner_img_view = e_view_image_view_get(blur_rectangle->corner_radius_image);
-             e_view_reparent(corner_img_view, layer_tree);
+             e_view_reparent(corner_img_view, view_tree);
              e_view_place_above(corner_img_view, img_view);
           }
      }
@@ -802,7 +802,7 @@ _e_blur_cb_new_rectangle(struct wl_listener *listener, void *data)
    EINA_SAFETY_ON_NULL_RETURN(blur->ec);
    blur_view_client = e_client_view_get(blur->ec);
    EINA_SAFETY_ON_NULL_RETURN(blur_view_client);
-   blur_view_client_tree = e_canvas_layer_view_tree_get(e_comp_canvas_get(), e_view_layer_index_get(e_view_client_view_get(blur_view_client)));
+   blur_view_client_tree = e_view_parent_get(e_view_client_view_get(blur_view_client));
    EINA_SAFETY_ON_NULL_RETURN(blur_view_client_tree);
 
    blur_rectangle = E_NEW(E_Blur_Rectangle, 1);
@@ -1108,23 +1108,23 @@ _e_blur_behind_cb_restack(struct wl_listener *listener, void *data)
 {
    E_View *event_src_view = ((E_View_Event_Callback_Data *)data)->view;
    E_Blur_Behind *blur_behind;
-   E_View_Tree *layer_tree;
+   E_View_Tree *view_tree;
    E_View *img_view = NULL, *dim_view = NULL;
 
    blur_behind = wl_container_of(listener, blur_behind, listener.restack);
 
-   layer_tree = e_canvas_layer_view_tree_get(e_comp_canvas_get(), e_view_layer_index_get(event_src_view));
-   if (!layer_tree) return;
+   view_tree = e_view_parent_get(event_src_view);
+   if (!view_tree) return;
 
    img_view = e_view_image_view_get(blur_behind->blur_rectangle->view_image);
 
-   e_view_reparent(img_view, layer_tree);
+   e_view_reparent(img_view, view_tree);
    e_view_place_below(img_view, _e_blur_behind_bottom_view_get(event_src_view));
 
    if (blur_behind->blur_rectangle->dim_rect)
      {
         dim_view = e_view_rect_view_get(blur_behind->blur_rectangle->dim_rect);
-        e_view_reparent(dim_view, layer_tree);
+        e_view_reparent(dim_view, view_tree);
         e_view_place_above(dim_view, img_view);
      }
 }
@@ -1213,7 +1213,7 @@ _e_blur_manager_cb_new_blur_behind(struct wl_listener *listener, void *data)
 
    view_client = e_client_view_get(ec);
    EINA_SAFETY_ON_NULL_RETURN(view_client);
-   view_client_tree = e_canvas_layer_view_tree_get(e_comp_canvas_get(), e_view_layer_index_get(e_view_client_view_get(view_client)));
+   view_client_tree = e_view_parent_get(e_view_client_view_get(view_client));
    EINA_SAFETY_ON_NULL_RETURN(view_client_tree);
 
    blur_behind = E_NEW(E_Blur_Behind, 1);
@@ -1492,7 +1492,7 @@ e_blur_dim_config_set(E_Blur_Dim_Config *dim_config)
      {
         view_client = e_client_view_get(blur->ec);
         if (!view_client) continue;
-        view_client_tree = e_canvas_layer_view_tree_get(e_comp_canvas_get(), e_view_layer_index_get(e_view_client_view_get(view_client)));
+        view_client_tree = e_view_parent_get(e_view_client_view_get(view_client));
         if (!view_client_tree) continue;
         EINA_LIST_FOREACH(blur->blur_rectangles, ll, blur_rectangle)
           {
@@ -1526,7 +1526,7 @@ e_blur_dim_config_set(E_Blur_Dim_Config *dim_config)
      {
         view_client = e_client_view_get(blur_behind->ec);
         if (!view_client) continue;
-        view_client_tree = e_canvas_layer_view_tree_get(e_comp_canvas_get(), e_view_layer_index_get(e_view_client_view_get(view_client)));
+        view_client_tree = e_view_parent_get(e_view_client_view_get(view_client));
         if (!view_client_tree) continue;
         blur_rectangle = blur_behind->blur_rectangle;
         if (after_enabled)
@@ -1598,7 +1598,7 @@ e_blur_stroke_config_set(E_Blur_Stroke_Config *stroke_config)
      {
         view_client = e_client_view_get(blur->ec);
         if (!view_client) continue;
-        view_client_tree = e_canvas_layer_view_tree_get(e_comp_canvas_get(), e_view_layer_index_get(e_view_client_view_get(view_client)));
+        view_client_tree = e_view_parent_get(e_view_client_view_get(view_client));
         if (!view_client_tree) continue;
         EINA_LIST_FOREACH(blur->blur_rectangles, ll, blur_rectangle)
           {
index 94899e1859e8c0547299d82179bd047e17a60635..ee737ddc43097624797860be62922dacbbcded2e 100644 (file)
@@ -121,6 +121,11 @@ _e_drag_finalize(E_Drag *drag, int x, int y)
 {
    E_View_Rect *rect;
    E_Pointer* comp_pointer;
+   E_Zone *zone;
+   E_Desk *desk;
+   E_Desk_Area *eda;
+   E_Policy_Desk_Area *pda;
+   E_View_Tree *view_tree;
    const int color[4] = {0, 0, 0, 0};
 
    comp_pointer = e_comp_pointer_get();
@@ -137,7 +142,13 @@ _e_drag_finalize(E_Drag *drag, int x, int y)
 
    if (!drag->view)
      {
-        rect = e_view_rect_create(e_canvas_layer_view_tree_get(e_comp_canvas_get(), E_CANVAS_LAYER_CLIENT_DRAG), 1, 1, color);
+        zone = e_seat_zone_get(drag->seat);
+        desk = e_desk_current_get(zone);
+        eda = e_desk_desk_area_base_get(desk);
+        pda = e_policy_desk_area_get(eda);
+        view_tree = e_policy_desk_area_layer_tree_get(pda, E_LAYER_CLIENT_DRAG);
+
+        rect = e_view_rect_create(view_tree, 1, 1, color);
         if (!rect)
           {
              ELOGF("DnD", "Failed to create rect", NULL);
@@ -216,14 +227,27 @@ e_drag_new(E_Seat *seat, int x, int y, E_Drag_Finished_Cb finished_cb)
 EINTERN void
 e_drag_view_set(E_Drag *drag, E_View *view)
 {
+   E_Zone *zone;
+   E_Desk *desk;
+   E_Desk_Area *eda;
+   E_Policy_Desk_Area *pda;
+   E_View_Tree *view_tree;
+
    EINA_SAFETY_ON_NULL_RETURN(view);
    EINA_SAFETY_ON_TRUE_RETURN(!!drag->view);
+
+   zone = e_seat_zone_get(drag->seat);
+   desk = e_desk_current_get(zone);
+   eda = e_desk_desk_area_base_get(desk);
+   pda = e_policy_desk_area_get(eda);
+
    if (drag->visible)
      e_view_show(view);
    else
      e_view_hide(view);
    drag->view = view;
-   e_view_reparent(view, e_canvas_layer_view_tree_get(e_comp_canvas_get(), E_CANVAS_LAYER_CLIENT_DRAG));
+   view_tree = e_policy_desk_area_layer_tree_get(pda, E_LAYER_CLIENT_DRAG);
+   e_view_reparent(view, view_tree);
    drag->comp_edje = e_view_edje_util_add(view);
    e_view_name_set(e_view_edje_view_get(drag->comp_edje), "E Drag");
    e_view_pass_events_set(e_view_edje_view_get(drag->comp_edje), 1);
index c6112b7100f31d8cf6c70d077d42ee6e8858213a..84935012d20cd3f565ad6a7d57e31c9ab5c254e1 100644 (file)
@@ -7,6 +7,8 @@
 #include "e_comp_intern.h"
 #include "e_zone_intern.h"
 #include "e_desk_intern.h"
+#include "e_desk_area_intern.h"
+#include "e_policy_desk_area_intern.h"
 
 #define E_MAGNIFIER_SMART_DATA_GET(obj, ptr)                        \
    E_Magnifier_Smart_Data *ptr = evas_object_smart_data_get(obj);
@@ -126,6 +128,9 @@ static E_Magnifier_Manager *
 _e_magnifier_manager_create(E_Zone *zone)
 {
    E_Magnifier_Manager *emm = NULL;
+   E_Desk *desk;
+   E_Desk_Area *eda;
+   E_Policy_Desk_Area *pda;
 
    emm = E_NEW(E_Magnifier_Manager, 1);
    EINA_SAFETY_ON_NULL_RETURN_VAL(emm, NULL);
@@ -139,7 +144,11 @@ _e_magnifier_manager_create(E_Zone *zone)
    emm->geom.system.w = 360;
    emm->geom.system.h = 360;
 
-   E_View_Tree *layer_tree = e_canvas_layer_view_tree_get(e_comp_canvas_get(), E_CANVAS_LAYER_DESK_OBJECT_BELOW);
+   desk = e_desk_current_get(zone);
+   eda = e_desk_desk_area_base_get(desk);
+   pda = e_policy_desk_area_get(eda);
+
+   E_View_Tree *layer_tree = e_policy_desk_area_layer_tree_get(pda, E_LAYER_DESK_OBJECT_BELOW);
    e_view_tree_init(&emm->tree, NULL, layer_tree);
    e_view_show(e_view_tree_view_get(&emm->tree));
 
index d6657c713010adb49988f16b3d41842ea6c03e06..e691c308fa3a73deef10465a57651d4c9a866bdb 100644 (file)
@@ -1949,6 +1949,7 @@ static void
 _desk_area_cb_client_layer_set(struct wl_listener *listener, void *data)
 {
    E_Policy_Desk_Area_Private_Client *eda_client;
+   E_Policy_Desk_Area *pda;
    E_Client *ec;
    E_View *ec_view;
    E_View_Tree *layer_tree;
@@ -1956,6 +1957,7 @@ _desk_area_cb_client_layer_set(struct wl_listener *listener, void *data)
    E_Layer layer;
 
    eda_client = wl_container_of(listener, eda_client, client_layer_set);
+   pda = e_policy_desk_area_get(eda_client->eda);
    ec = eda_client->ec;
    layer_data = (E_Client_Data_Layer *) data;
    layer = layer_data->layer;
@@ -1967,7 +1969,7 @@ _desk_area_cb_client_layer_set(struct wl_listener *listener, void *data)
         e_view_position_set(ec_view, ec->x, ec->y);
      }
 
-   layer_tree = e_canvas_layer_view_tree_get(e_canvas_get(ec_view), e_canvas_util_e_layer_map(layer));
+   layer_tree = e_policy_desk_area_layer_tree_get(pda, layer);
    e_view_reparent(ec_view, layer_tree);
    evas_object_layer_set(ec_view->eo, layer);
    if (ec->layer != layer)
index d3ccb18d5f0f1773a2e1477938c4c65996c52b52..cdc739e2dfa542791fe779eb9507feeff0e8bf9d 100644 (file)
@@ -16,6 +16,9 @@
 #include "e_view_layout_intern.h"
 #include "e_map_intern.h"
 #include "e_config_intern.h"
+#include "e_desk_intern.h"
+#include "e_desk_area_intern.h"
+#include "e_policy_desk_area_intern.h"
 
 #define SMART_NAME            "quickpanel_object"
 
@@ -284,14 +287,21 @@ _e_qp_mover_create(E_Policy_Quickpanel *qp)
 {
    E_Policy_Quickpanel_Mover *mover = NULL;
    E_View_Tree *tree = NULL;
+   E_Desk *desk;
+   E_Desk_Area *eda;
+   E_Policy_Desk_Area *pda;
 
    mover = E_NEW(E_Policy_Quickpanel_Mover, 1);
    if (!mover) return NULL;
    mover->qp = qp;
    mover->ec = qp->ec;
 
-   tree = e_canvas_layer_view_tree_get(e_comp_canvas_get(), e_canvas_util_e_layer_map(qp->ec->layer));
+   desk = e_zone_desk_find_by_ec(qp->zone, qp->ec);
+   eda = e_desk_desk_area_find_by_ec(desk, qp->ec);
+   pda = e_policy_desk_area_get(eda);
+   tree = e_policy_desk_area_layer_tree_get(pda, qp->ec->layer);
    if (!tree) goto fail;
+
    mover->qp_layout = e_view_layout_create(tree);
    if (!mover->qp_layout) goto fail;
 
@@ -348,12 +358,18 @@ _e_qp_mover_show(E_Policy_Quickpanel_Mover *mover)
    int color[4] = { 255, 255, 255, 255 };
    E_View_Tree *tree = NULL;
    E_View *effect = NULL;
+   E_Desk *desk;
+   E_Desk_Area *eda;
+   E_Policy_Desk_Area *pda;
 
    if (!mover) return;
 
    ec = mover->ec;
 
-   tree = e_canvas_layer_view_tree_get(e_comp_canvas_get(), E_CANVAS_LAYER_CLIENT_NORMAL);
+   desk = e_zone_desk_find_by_ec(mover->qp->zone, ec);
+   eda = e_desk_desk_area_find_by_ec(desk, ec);
+   pda = e_policy_desk_area_get(eda);
+   tree = e_policy_desk_area_layer_tree_get(pda, E_LAYER_CLIENT_NORMAL);
    if (!tree) return;
 
    /* force update */
@@ -2014,15 +2030,20 @@ _quickpanel_indicator_object_new(E_Policy_Quickpanel *qp)
    E_View *indi_view;
    E_View_Tree *layer_tree;
    E_Desk *desk;
+   E_Desk_Area *eda;
+   E_Policy_Desk_Area *pda;
 
    indi_view = e_service_region_new(qp->ec);
    e_view_name_set(indi_view, "qp::indicator_obj");
    if (!indi_view)
      return NULL;
 
+   desk = e_zone_desk_find_by_ec(qp->zone, qp->ec);
+   eda = e_desk_desk_area_find_by_ec(desk, qp->ec);
+   pda = e_policy_desk_area_get(eda);
+   layer_tree = e_policy_desk_area_layer_tree_get(pda, E_LAYER_CLIENT_ALERT_LOW);
+
    e_view_repeat_events_set(indi_view, EINA_FALSE);
-   /* FIXME: make me move to explicit layer something like POL_LAYER */
-   layer_tree = e_canvas_layer_view_tree_get(e_comp_canvas_get(), E_CANVAS_LAYER_MAX - 1);
    e_view_reparent(indi_view, layer_tree);
 
    e_service_region_gesture_set(indi_view,
@@ -2036,7 +2057,6 @@ _quickpanel_indicator_object_new(E_Policy_Quickpanel *qp)
 
    if (e_config->qp_add_on_desk_smart)
      {
-        desk = e_desk_current_get(qp->zone);
         e_desk_smart_member_add(desk, indi_view->eo);
      }
 
@@ -2202,6 +2222,9 @@ e_service_quickpanel_client_add(E_Client *ec, E_Service_Quickpanel_Type type)
    E_Policy_Quickpanel *qp = NULL;
    E_Layer layer;
    E_Zone *zone;
+   E_Desk *desk;
+   E_Desk_Area *eda;
+   E_Policy_Desk_Area *pda;
    E_View *view;
 
    BACKEND_FUNC_CALL(quickpanel_client_add, ec, type);
@@ -2276,7 +2299,11 @@ e_service_quickpanel_client_add(E_Client *ec, E_Service_Quickpanel_Type type)
      {
         E_View_Tree *tree;
         int color[4] = { 0, 0, 0, 0 };
-        tree = e_canvas_layer_view_tree_get(e_comp_canvas_get(), e_canvas_util_e_layer_map(E_LAYER_CLIENT_ALERT_LOW));
+
+        desk = e_zone_desk_find_by_ec(qp->zone, ec);
+        eda = e_desk_desk_area_find_by_ec(desk, ec);
+        pda = e_policy_desk_area_get(eda);
+        tree = e_policy_desk_area_layer_tree_get(pda, E_LAYER_CLIENT_ALERT_LOW);
 
         qp->bg_rect = e_view_rect_create(tree, qp->zone->w, qp->zone->h, color);
         e_view_name_set(e_view_rect_view_get(qp->bg_rect), "qp::bg_rect");
index 2495a00fddf958c29b518382ac513654715a34b8..e78aae66303696f9fc56262a3099d3e5f3f044c9 100644 (file)
@@ -9,6 +9,9 @@
 #include "e_comp_canvas_intern.h"
 #include "e_canvas_intern.h"
 #include "e_config_intern.h"
+#include "e_desk_intern.h"
+#include "e_desk_area_intern.h"
+#include "e_policy_desk_area_intern.h"
 
 #include <tzsh_server.h>
 
@@ -278,6 +281,9 @@ _e_service_handler_object_new(E_Service_Softkey *softkey_service)
 {
    E_View *handler_view;
    E_View_Tree *layer_tree;
+   E_Desk *desk;
+   E_Desk_Area *eda;
+   E_Policy_Desk_Area *pda;
 
    handler_view = e_service_region_new(softkey_service->ec);
    if (!handler_view)
@@ -285,9 +291,12 @@ _e_service_handler_object_new(E_Service_Softkey *softkey_service)
 
    e_view_name_set(handler_view, "softkey_service::handler_obj");
 
+   desk = e_zone_desk_find_by_ec(softkey_service->zone, softkey_service->ec);
+   eda = e_desk_desk_area_find_by_ec(desk, softkey_service->ec);
+   pda = e_policy_desk_area_get(eda);
+   layer_tree = e_policy_desk_area_layer_tree_get(pda, E_LAYER_CLIENT_ALERT_LOW);
+
    e_view_repeat_events_set(handler_view, EINA_FALSE);
-   /* FIXME: make me move to explicit layer something like POL_LAYER */
-   layer_tree = e_canvas_layer_view_tree_get(e_comp_canvas_get(), E_CANVAS_LAYER_MAX - 1);
    e_view_reparent(handler_view, layer_tree);
 
    e_service_region_gesture_set(handler_view,
index f55495b03811f91f83f90e29435666820560521a..164bb8194e9fcd8316d689dad288d4e45621865e 100644 (file)
@@ -8,6 +8,9 @@
 #include "e_comp_wl_intern.h"
 #include "e_comp_canvas.h"
 #include "e_seat_intern.h"
+#include "e_desk_intern.h"
+#include "e_desk_area_intern.h"
+#include "e_policy_desk_area_intern.h"
 
 #include <wayland-server.h>
 #include <tzsh_server.h>
@@ -356,6 +359,9 @@ _volume_content_region_obj_new(int width, int height)
    E_View_Client *view_client;
    E_View_Rect *obj;
    E_View* obj_view;
+   E_Desk *desk;
+   E_Desk_Area *eda;
+   E_Policy_Desk_Area *pda;
 
    view_client = e_client_view_get(_volume_ec);
    if (!view_client)
@@ -364,7 +370,10 @@ _volume_content_region_obj_new(int width, int height)
         return NULL;
      }
 
-   layer_tree = e_canvas_layer_view_tree_get(e_comp_canvas_get(), e_view_layer_index_get(e_view_client_view_get(view_client)));
+   desk = e_zone_desk_find_by_ec(e_comp_zone_find_by_ec(_volume_ec), _volume_ec);
+   eda = e_desk_desk_area_find_by_ec(desk, _volume_ec);
+   pda = e_policy_desk_area_get(eda);
+   layer_tree = e_policy_desk_area_layer_tree_get(pda, e_client_layer_get(_volume_ec));
    obj = e_view_rect_create(layer_tree, width, height, color);
    if (!obj)
      {