commit afc961f641e0ffb9cd1deef0014b1f9db0ccff9f
parent e9243fc7ce52191f0ee614527dfd05ab4f699066
Author: Anselm R. Garbe <garbeam@wmii.de>
Date: Thu, 2 Mar 2006 10:36:03 +0100
fixed left column resize issue, allowing sendtoarea with the implication, that the area gets destroyed
Diffstat:
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/cmd/wm/client.c b/cmd/wm/client.c
@@ -587,7 +587,7 @@ sendtoarea_client(Client *c, char *arg) {
Page *p = a->page;
int i = area2index(a);
- if(i == -1 || a->nclient < 2)
+ if(i == -1)
return;
if(!strncmp(arg, "prev", 5)) {
if(i == 1)
@@ -608,6 +608,8 @@ sendtoarea_client(Client *c, char *arg) {
to = p->area[i];
}
sendto_area(to, c);
+ if(!a->nclient)
+ destroy_area(a);
arrange_column(to);
}
diff --git a/cmd/wm/column.c b/cmd/wm/column.c
@@ -173,11 +173,12 @@ drop_resize(Client *c, XRectangle *new)
Client *north = nil, *south = nil;
unsigned int i;
- for(i = 0; (i < p->narea) && (p->area[i] != col); i++);
- west = i ? p->area[i - 1] : nil;
+ for(i = 1; (i < p->narea) && (p->area[i] != col); i++);
+ /* first managed area is indexed 1, thus (i > 1) ? ... */
+ west = (i > 1) ? p->area[i - 1] : nil;
east = i + 1 < p->narea ? p->area[i + 1] : nil;
- for(i = 0; (i < col->nclient) && (col->client[i] != c); i++);
+ for(i = 1; (i < col->nclient) && (col->client[i] != c); i++);
north = i ? col->client[i - 1] : nil;
south = i + 1 < col->nclient ? col->client[i + 1] : nil;