use zone geometry for shelf zone obstacles

shelves use relative coords, so zone obstacles must have adjusted coords
passed in order to calc correctly

fix T3404
This commit is contained in:
Mike Blumenkrantz 2016-04-04 11:28:04 -04:00
parent f60273357f
commit 7541a51599
1 changed files with 7 additions and 3 deletions

View File

@ -142,7 +142,9 @@ _e_shelf_obstacles_update(E_Shelf *es)
E_Zone_Obstacle *obs;
EINA_LIST_FOREACH(es->zone_obstacles, l, obs)
e_zone_obstacle_modify(obs, &(Eina_Rectangle){es->x, es->y, es->w, es->h}, !_e_shelf_is_horizontal(es));
e_zone_obstacle_modify(obs,
&(Eina_Rectangle){es->x + es->zone->x, es->y + es->zone->y, es->w, es->h},
!_e_shelf_is_horizontal(es));
}
static Eina_Bool
@ -1032,13 +1034,15 @@ e_shelf_obstacles_update(E_Shelf *es)
desk = e_desk_at_xy_get(es->zone, sd->x, sd->y);
if (!desk) continue;
es->zone_obstacles = eina_list_append(es->zone_obstacles,
e_zone_obstacle_add(es->zone, desk, &(Eina_Rectangle){es->x, es->y, es->w, es->h},
e_zone_obstacle_add(es->zone, desk,
&(Eina_Rectangle){es->x + es->zone->x, es->y + es->zone->y, es->w, es->h},
!_e_shelf_is_horizontal(es)));
}
}
else
es->zone_obstacles = eina_list_append(es->zone_obstacles,
e_zone_obstacle_add(es->zone, NULL, &(Eina_Rectangle){es->x, es->y, es->w, es->h},
e_zone_obstacle_add(es->zone, NULL,
&(Eina_Rectangle){es->x + es->zone->x, es->y + es->zone->y, es->w, es->h},
!_e_shelf_is_horizontal(es)));
}