Fix dock maximize.

SVN revision: 24452
This commit is contained in:
sebastid 2006-08-08 00:00:41 +00:00 committed by sebastid
parent a951cbcc10
commit 6027cd3d4c
1 changed files with 12 additions and 8 deletions

View File

@ -51,11 +51,12 @@ e_maximize_border_dock_fit(E_Border *bd, int *x1, int *y1, int *x2, int *y2)
while ((bd2 = e_container_border_list_next(bl)))
{
enum {
NONE,
TOP,
RIGHT,
BOTTOM,
LEFT
} edge = TOP;
} edge = NONE;
if ((bd2->zone != bd->zone) || (bd2 == bd) ||
(bd2->client.netwm.type != ECORE_X_WINDOW_TYPE_DOCK))
@ -69,14 +70,14 @@ e_maximize_border_dock_fit(E_Border *bd, int *x1, int *y1, int *x2, int *y2)
{
if (bd2->y == bd2->zone->y)
edge = TOP;
else if ((bd2->x + bd2->h) == (bd2->zone->x + bd2->zone->h))
else if ((bd2->y + bd2->h) == (bd2->zone->y + bd2->zone->h))
edge = BOTTOM;
}
else
{
if ((bd2->x + bd2->w) == (bd2->zone->x + bd2->zone->w))
edge = RIGHT;
else if ((bd2->y == bd2->zone->y))
else if (bd2->x == bd2->zone->x)
edge = LEFT;
}
}
@ -84,12 +85,12 @@ e_maximize_border_dock_fit(E_Border *bd, int *x1, int *y1, int *x2, int *y2)
{
if (bd2->y == bd2->zone->y)
edge = TOP;
else if ((bd2->y + bd2->h) == (bd2->zone->y + bd2->zone->h))
edge = BOTTOM;
else if (bd2->x == bd2->zone->x)
edge = LEFT;
else if ((bd2->x + bd2->w) == (bd2->zone->x + bd2->zone->w))
edge = RIGHT;
else if ((bd2->x + bd2->h) == (bd2->zone->x + bd2->zone->h))
edge = BOTTOM;
else if ((bd2->y == bd2->zone->y))
edge = LEFT;
}
switch (edge)
@ -110,6 +111,9 @@ e_maximize_border_dock_fit(E_Border *bd, int *x1, int *y1, int *x2, int *y2)
if ((bd2->x + bd2->w) > cx1)
cx1 = (bd2->x + bd2->w);
break;
case NONE:
printf("Crazy people. Dock isn't at the edge.\n");
break;
}
}
e_container_border_list_free(bl);