fix overlap

SVN revision: 13056
This commit is contained in:
Carsten Haitzler 2005-01-22 12:07:10 +00:00
parent b6c300dd69
commit 7b65c794e7
1 changed files with 31 additions and 13 deletions

View File

@ -652,10 +652,13 @@ _e_gadman_client_overlap_deny(E_Gadman_Client *gmc)
E_Gadman_Client *gmc2;
gmc2 = l->data;
if ((E_SPANS_COMMON(gmc->x, gmc->w, gmc2->x, gmc2->w)) &&
(E_SPANS_COMMON(gmc->y, gmc->h, gmc2->y, gmc2->h)))
if (gmc != gmc2)
{
gmc->x = gmc2->x + gmc2->w;
if ((E_SPANS_COMMON(gmc->x, gmc->w, gmc2->x, gmc2->w)) &&
(E_SPANS_COMMON(gmc->y, gmc->h, gmc2->y, gmc2->h)))
{
gmc->x = gmc2->x + gmc2->w;
}
}
}
if ((gmc->x + gmc->w) > (gmc->zone->x + gmc->zone->w))
@ -666,20 +669,29 @@ _e_gadman_client_overlap_deny(E_Gadman_Client *gmc)
E_Gadman_Client *gmc2;
gmc2 = l->data;
if ((E_SPANS_COMMON(gmc->x, gmc->w, gmc2->x, gmc2->w)) &&
(E_SPANS_COMMON(gmc->y, gmc->h, gmc2->y, gmc2->h)))
ok = 0;
if (gmc != gmc2)
{
if ((E_SPANS_COMMON(gmc->x, gmc->w, gmc2->x, gmc2->w)) &&
(E_SPANS_COMMON(gmc->y, gmc->h, gmc2->y, gmc2->h)))
{
ok = 0;
break;
}
}
}
if (ok) break;
for (l = gmc->zone->container->gadman->clients; l; l = l->next)
{
E_Gadman_Client *gmc2;
gmc2 = l->data;
if ((E_SPANS_COMMON(gmc->x, gmc->w, gmc2->x, gmc2->w)) &&
(E_SPANS_COMMON(gmc->y, gmc->h, gmc2->y, gmc2->h)))
if (gmc != gmc2)
{
gmc->x = gmc2->x - gmc->w;
gmc2 = l->data;
if ((E_SPANS_COMMON(gmc->x, gmc->w, gmc2->x, gmc2->w)) &&
(E_SPANS_COMMON(gmc->y, gmc->h, gmc2->y, gmc2->h)))
{
gmc->x = gmc2->x - gmc->w;
}
}
}
if (gmc->x < gmc->zone->x)
@ -690,9 +702,15 @@ _e_gadman_client_overlap_deny(E_Gadman_Client *gmc)
E_Gadman_Client *gmc2;
gmc2 = l->data;
if ((E_SPANS_COMMON(gmc->x, gmc->w, gmc2->x, gmc2->w)) &&
(E_SPANS_COMMON(gmc->y, gmc->h, gmc2->y, gmc2->h)))
ok = 0;
if (gmc != gmc2)
{
if ((E_SPANS_COMMON(gmc->x, gmc->w, gmc2->x, gmc2->w)) &&
(E_SPANS_COMMON(gmc->y, gmc->h, gmc2->y, gmc2->h)))
{
ok = 0;
break;
}
}
}
if (ok) break;
if (gmc->y > (gmc->zone->y + (gmc->zone->h / 2)))