This should make it possible to change both rows and columns of desks at

the same time.


SVN revision: 15312
This commit is contained in:
sebastid 2005-06-13 19:49:11 +00:00 committed by sebastid
parent 8f4f470599
commit 47efbf19bd
1 changed files with 21 additions and 24 deletions

View File

@ -1162,7 +1162,6 @@ _pager_face_cb_event_zone_desk_count_set(void *data, int type, void *event)
E_Desk *desk; E_Desk *desk;
Evas_List *l; Evas_List *l;
int desks_x, desks_y; int desks_x, desks_y;
int max_x, max_y;
int x, y; int x, y;
Evas_Coord lw, lh, dw, dh; Evas_Coord lw, lh, dw, dh;
@ -1180,30 +1179,14 @@ _pager_face_cb_event_zone_desk_count_set(void *data, int type, void *event)
else dh = 0; else dh = 0;
dh *= (desks_y - face->ynum); dh *= (desks_y - face->ynum);
max_x = MAX(face->xnum, desks_x); /* Loop to remove extra desks */
max_y = MAX(face->ynum, desks_y); for (l = face->desks; l;)
for (x = 0; x < max_x; x++)
{
for (y = 0; y < max_y; y++)
{
if ((x >= face->xnum) || (y >= face->ynum))
{
/* add desk */
desk = e_desk_at_xy_get(ev->zone, x, y);
pd = _pager_desk_new(face, desk, x, y);
if (pd)
face->desks = evas_list_append(face->desks, pd);
}
else if ((x >= desks_x) || (y >= desks_y))
{
/* del desk */
for (l = face->desks; l; l = l->next)
{ {
pd = l->data; pd = l->data;
if ((pd->xpos == x) && (pd->ypos == y)) l = l->next;
break; if ((pd->xpos >= desks_x) || (pd->ypos >= desks_y))
} {
/* remove desk */
if (pd->current) if (pd->current)
{ {
desk = e_desk_current_get(ev->zone); desk = e_desk_current_get(ev->zone);
@ -1214,6 +1197,20 @@ _pager_face_cb_event_zone_desk_count_set(void *data, int type, void *event)
_pager_desk_free(pd); _pager_desk_free(pd);
} }
} }
/* Loop to add new desks */
for (x = 0; x < desks_x; x++)
{
for (y = 0; y < desks_y; y++)
{
if ((x >= face->xnum) || (y >= face->ynum))
{
/* add desk */
desk = e_desk_at_xy_get(ev->zone, x, y);
pd = _pager_desk_new(face, desk, x, y);
if (pd)
face->desks = evas_list_append(face->desks, pd);
}
}
} }
face->xnum = desks_x; face->xnum = desks_x;