From 34518639c8fa3fcd6741602e5778c28d5f8edfb2 Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Wed, 5 Jul 2023 13:34:29 +0900 Subject: [PATCH] e_zone: remove the use of ec->zone The zone variable at ec will be deprecated. Change-Id: I2c0d67cee9908c0981348803bd7ae81f270b148a --- src/bin/e_desk.c | 6 ++++-- src/bin/e_zone.c | 22 +++++++++++++--------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/src/bin/e_desk.c b/src/bin/e_desk.c index 83b220e..d4f58f0 100644 --- a/src/bin/e_desk.c +++ b/src/bin/e_desk.c @@ -474,7 +474,7 @@ e_desk_last_focused_focus(E_Desk *desk) EINA_LIST_FOREACH(e_client_focus_stack_get(), l, ec) { if ((!ec->iconic) && (evas_object_visible_get(ec->frame) || ec->changes.visible) && - ((ec->desk == desk) || ((ec->zone == desk->zone) && ec->sticky)) && + ((ec->desk == desk) || (e_zone_has_ec(desk->zone, ec) && ec->sticky)) && (ec->icccm.accepts_focus || ec->icccm.take_focus) && (ec->netwm.type != E_WINDOW_TYPE_DOCK) && (ec->netwm.type != E_WINDOW_TYPE_TOOLBAR) && @@ -1541,6 +1541,7 @@ _e_desk_transition_setup(E_Client *ec, int dx, int dy, int state) static void _e_desk_show_end(void *data, Evas_Object *obj EINA_UNUSED, const char *emission EINA_UNUSED, const char *source EINA_UNUSED) { + E_Zone *zone; E_Client *ec = data; ec->desk->animate_count--; @@ -1548,7 +1549,8 @@ _e_desk_show_end(void *data, Evas_Object *obj EINA_UNUSED, const char *emission e_comp_object_effect_unclip(ec->frame); ec->hidden = 0; if (!ec->visible) evas_object_show(ec->frame); - if (ec->desk != e_desk_current_get(ec->zone)) return; + zone = e_comp_zone_find_by_ec(ec); + if (ec->desk != e_desk_current_get(zone)) return; if (!ec->desk->animate_count) e_desk_flip_end(ec->desk); } diff --git a/src/bin/e_zone.c b/src/bin/e_zone.c index 896a6a5..331e345 100644 --- a/src/bin/e_zone.c +++ b/src/bin/e_zone.c @@ -345,7 +345,7 @@ e_zone_reconfigure_clients(E_Zone *zone, int dx, int dy, int dw, int dh) E_CLIENT_FOREACH(ec) { - if (ec->zone != zone) continue; + if (!e_zone_has_ec(zone, ec)) continue; if ((dx != 0) || (dy != 0)) evas_object_move(ec->frame, ec->x + dx, ec->y + dy); @@ -1175,7 +1175,7 @@ e_zone_obstacle_add(E_Zone *zone, E_Client *ec, Eina_Rectangle *geom, Eina_Bool EINA_SAFETY_ON_NULL_RETURN_VAL(zone, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(ec, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(geom, EINA_FALSE); - EINA_SAFETY_ON_FALSE_RETURN_VAL(zone == ec->zone, EINA_FALSE); + EINA_SAFETY_ON_FALSE_RETURN_VAL(e_zone_has_ec(zone, ec), EINA_FALSE); // check in the list... EINA_LIST_FOREACH(zone->obstacles, l, obs) @@ -1213,7 +1213,7 @@ e_zone_obstacle_update(E_Zone *zone, E_Client *ec, Eina_Rectangle *geom, Eina_Bo if (!zone) return EINA_FALSE; if (!ec) return EINA_FALSE; - if (zone != ec->zone) return EINA_FALSE; + if (!e_zone_has_ec(zone, ec)) return EINA_FALSE; EINA_LIST_FOREACH(zone->obstacles, l, obs) { @@ -1264,7 +1264,7 @@ e_zone_obstacle_remove(E_Zone *zone, E_Client *ec) if (!zone) return; if (!ec) return; - if (zone != ec->zone) return; + if (!e_zone_has_ec(zone, ec)) return; EINA_LIST_FOREACH_SAFE(zone->obstacles, l, ll, obs) { @@ -1985,16 +1985,20 @@ e_zone_screen_splitscreen_enable(E_Zone *zone) EINTERN void e_zone_client_add(E_Zone *zone, E_Client *ec) { + E_Zone *ec_zone; + + ec_zone = e_comp_zone_find_by_ec(ec); + /* if the window does not lie in the new zone, move it so that it does */ if (!E_INTERSECTS(ec->x, ec->y, ec->w, ec->h, zone->x, zone->y, zone->w, zone->h)) { int x, y; - if (ec->zone) + if (ec_zone) { /* first guess -- get offset from old zone, and apply to new zone */ - x = zone->x + (ec->x - ec->zone->x); - y = zone->y + (ec->y - ec->zone->y); + x = zone->x + (ec->x - ec_zone->x); + y = zone->y + (ec->y - ec_zone->y); } else x = ec->x, y = ec->y; @@ -2023,8 +2027,8 @@ e_zone_client_add(E_Zone *zone, E_Client *ec) // 2. This code should be removed because e_client_zone_set() is called // inside e_client_desk_set(). It makes the infinite loop calls(circular calls). // e_client_desk_set() -> e_client_zone_set() -> e_zone_client_add() -> e_client_desk_set() -> ... and so on. - if ((!ec->desk) || (ec->desk->zone != ec->zone)) - e_client_desk_set(ec, e_desk_current_get(ec->zone)); + if ((!ec->desk) || (ec->desk->zone != ec_zone)) + e_client_desk_set(ec, e_desk_current_get(ec_zone)); e_client_res_change_geometry_save(ec); e_client_res_change_geometry_restore(ec); -- 2.7.4