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))) while ((bd2 = e_container_border_list_next(bl)))
{ {
enum { enum {
TOP, NONE,
TOP,
RIGHT, RIGHT,
BOTTOM, BOTTOM,
LEFT LEFT
} edge = TOP; } edge = NONE;
if ((bd2->zone != bd->zone) || (bd2 == bd) || if ((bd2->zone != bd->zone) || (bd2 == bd) ||
(bd2->client.netwm.type != ECORE_X_WINDOW_TYPE_DOCK)) (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) if (bd2->y == bd2->zone->y)
edge = TOP; 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; edge = BOTTOM;
} }
else else
{ {
if ((bd2->x + bd2->w) == (bd2->zone->x + bd2->zone->w)) if ((bd2->x + bd2->w) == (bd2->zone->x + bd2->zone->w))
edge = RIGHT; edge = RIGHT;
else if ((bd2->y == bd2->zone->y)) else if (bd2->x == bd2->zone->x)
edge = LEFT; 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) if (bd2->y == bd2->zone->y)
edge = TOP; 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)) else if ((bd2->x + bd2->w) == (bd2->zone->x + bd2->zone->w))
edge = RIGHT; 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) 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) if ((bd2->x + bd2->w) > cx1)
cx1 = (bd2->x + bd2->w); cx1 = (bd2->x + bd2->w);
break; break;
case NONE:
printf("Crazy people. Dock isn't at the edge.\n");
break;
} }
} }
e_container_border_list_free(bl); e_container_border_list_free(bl);