From: Junseok Kim Date: Thu, 3 Apr 2025 10:04:08 +0000 (+0900) Subject: e_canvas: change e_canvas_layer to layer tree of desk area X-Git-Tag: accepted/tizen/unified/20250612.024607~35 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=841598789da84f78f5ab70f41dea80504e5fc866;p=platform%2Fupstream%2Fenlightenment.git e_canvas: change e_canvas_layer to layer tree of desk area Change-Id: I183c641876ac7a09d33ae0c1fdc99c4d3435348e --- diff --git a/src/bin/compmgr/e_blur_video_capture.c b/src/bin/compmgr/e_blur_video_capture.c index 0fc850242a..3057106ed0 100644 --- a/src/bin/compmgr/e_blur_video_capture.c +++ b/src/bin/compmgr/e_blur_video_capture.c @@ -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); } } diff --git a/src/bin/compmgr/e_comp_canvas.c b/src/bin/compmgr/e_comp_canvas.c index 0a453d4401..9bfe643f09 100644 --- a/src/bin/compmgr/e_comp_canvas.c +++ b/src/bin/compmgr/e_comp_canvas.c @@ -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); diff --git a/src/bin/core/e_client.c b/src/bin/core/e_client.c index c21baf9590..1786f32dd7 100644 --- a/src/bin/core/e_client.c +++ b/src/bin/core/e_client.c @@ -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); diff --git a/src/bin/core/e_view_layout.c b/src/bin/core/e_view_layout.c index ed46a0f15c..1c66bb1112 100644 --- a/src/bin/core/e_view_layout.c +++ b/src/bin/core/e_view_layout.c @@ -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)) { diff --git a/src/bin/server/e_blur.c b/src/bin/server/e_blur.c index e76c8c5c71..9b7c1acc56 100644 --- a/src/bin/server/e_blur.c +++ b/src/bin/server/e_blur.c @@ -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) { diff --git a/src/bin/windowmgr/e_dnd.c b/src/bin/windowmgr/e_dnd.c index 94899e1859..ee737ddc43 100644 --- a/src/bin/windowmgr/e_dnd.c +++ b/src/bin/windowmgr/e_dnd.c @@ -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); diff --git a/src/bin/windowmgr/e_magnifier.c b/src/bin/windowmgr/e_magnifier.c index c6112b7100..84935012d2 100644 --- a/src/bin/windowmgr/e_magnifier.c +++ b/src/bin/windowmgr/e_magnifier.c @@ -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)); diff --git a/src/bin/windowmgr/e_policy_desk_area.c b/src/bin/windowmgr/e_policy_desk_area.c index d6657c7130..e691c308fa 100644 --- a/src/bin/windowmgr/e_policy_desk_area.c +++ b/src/bin/windowmgr/e_policy_desk_area.c @@ -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) diff --git a/src/bin/windowmgr/services/e_service_quickpanel.c b/src/bin/windowmgr/services/e_service_quickpanel.c index d3ccb18d5f..cdc739e2df 100644 --- a/src/bin/windowmgr/services/e_service_quickpanel.c +++ b/src/bin/windowmgr/services/e_service_quickpanel.c @@ -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"); diff --git a/src/bin/windowmgr/services/e_service_softkey.c b/src/bin/windowmgr/services/e_service_softkey.c index 2495a00fdd..e78aae6630 100644 --- a/src/bin/windowmgr/services/e_service_softkey.c +++ b/src/bin/windowmgr/services/e_service_softkey.c @@ -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 @@ -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, diff --git a/src/bin/windowmgr/services/e_service_volume.c b/src/bin/windowmgr/services/e_service_volume.c index f55495b038..164bb8194e 100644 --- a/src/bin/windowmgr/services/e_service_volume.c +++ b/src/bin/windowmgr/services/e_service_volume.c @@ -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 #include @@ -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) {