From 2851ce5b029b2ac9387000fddff4c4b6a3644d69 Mon Sep 17 00:00:00 2001 From: "Anselm R. Garbe" Date: Wed, 15 Mar 2006 16:00:39 +0100 Subject: [PATCH] fixed cyclic calls of resize_client because it called resize_area (this is only called explicitely now) --- cmd/wm/area.c | 27 +++++++++++++-------------- cmd/wm/bar.c | 2 +- cmd/wm/client.c | 10 +++------- cmd/wm/fs.c | 5 ++++- cmd/wm/mouse.c | 10 ++++++++-- cmd/wm/tag.c | 2 +- cmd/wm/wm.h | 2 +- 7 files changed, 31 insertions(+), 27 deletions(-) diff --git a/cmd/wm/area.c b/cmd/wm/area.c index dc4c35f7..12f668da 100644 --- a/cmd/wm/area.c +++ b/cmd/wm/area.c @@ -141,7 +141,7 @@ attach_toarea(Area *a, Client *c) if(area2index(a)) /* column */ arrange_area(a); else /* floating */ - resize_client(c, &f->rect, nil, False); + resize_client(c, &f->rect, False); } void @@ -248,7 +248,7 @@ relax_area(Area *a) Frame *f = a->frame[i]; f->rect.x = a->rect.x + (a->rect.width - f->rect.width) / 2; f->rect.y = a->rect.y + (a->rect.height - f->rect.height) / 2; - resize_client(f->client, &f->rect, nil, False); + resize_client(f->client, &f->rect, False); } return; } @@ -271,7 +271,7 @@ relax_area(Area *a) Frame *f = a->frame[i]; unsigned int tmp = f->rect.height; f->rect.height += (a->rect.height - h); - resize_client(f->client, &f->rect, nil, True); + resize_client(f->client, &f->rect, True); h += (f->rect.height - tmp); } } @@ -284,7 +284,7 @@ relax_area(Area *a) f->rect.y = yoff; if(a->mode != Colmax) yoff = f->rect.y + f->rect.height + hdiff; - resize_client(f->client, &f->rect, nil, False); + resize_client(f->client, &f->rect, False); } } @@ -311,7 +311,7 @@ arrange_area(Area *a) else f->rect.height = a->rect.height - f->rect.y + a->rect.y; - resize_client(f->client, &f->rect, nil, True); + resize_client(f->client, &f->rect, True); } break; case Colstack: @@ -328,7 +328,7 @@ arrange_area(Area *a) else f->rect.height = bar_height(); yoff += f->rect.height; - resize_client(f->client, &f->rect, nil, True); + resize_client(f->client, &f->rect, True); } break; Fallthrough: @@ -336,7 +336,7 @@ Fallthrough: for(i = 0; i < a->nframe; i++) { Frame *f = a->frame[i]; f->rect = a->rect; - resize_client(f->client, &f->rect, nil, True); + resize_client(f->client, &f->rect, True); } break; default: @@ -376,7 +376,7 @@ match_horiz(Area *a, XRectangle *r) Frame *f = a->frame[i]; f->rect.x = r->x; f->rect.width = r->width; - resize_client(f->client, &f->rect, nil, False); + resize_client(f->client, &f->rect, False); } } @@ -421,16 +421,16 @@ drop_resize(Frame *f, XRectangle *new) north->rect.height = new->y - north->rect.y; f->rect.height += f->rect.y - new->y; f->rect.y = new->y; - resize_client(north->client, &north->rect, nil, False); - resize_client(f->client, &f->rect, nil, False); + resize_client(north->client, &north->rect, False); + resize_client(f->client, &f->rect, False); } if(south && (new->y + new->height != f->rect.y + f->rect.height)) { south->rect.height -= new->y + new->height - south->rect.y; south->rect.y = new->y + new->height; f->rect.y = new->y; f->rect.height = new->height; - resize_client(f->client, &f->rect, nil, False); - resize_client(south->client, &south->rect, nil, False); + resize_client(f->client, &f->rect, False); + resize_client(south->client, &south->rect, False); } relax_area(a); } @@ -471,8 +471,7 @@ void resize_area(Client *c, XRectangle *r, XPoint *pt) { Frame *f = c->frame[c->sel]; - if((f->rect.width == r->width) - && (f->rect.height == r->height)) + if((f->rect.width == r->width) && (f->rect.height == r->height)) drop_moving(f, r, pt); else drop_resize(f, r); diff --git a/cmd/wm/bar.c b/cmd/wm/bar.c index 1201b049..1517e845 100644 --- a/cmd/wm/bar.c +++ b/cmd/wm/bar.c @@ -70,7 +70,7 @@ update_bar_geometry() } for(j = 0; j < tag[i]->area[0]->nframe; j++) { Frame *f = tag[i]->area[0]->frame[j]; - resize_client(f->client, &f->rect, nil, False); + resize_client(f->client, &f->rect, False); } } } diff --git a/cmd/wm/client.c b/cmd/wm/client.c index 7d1e51dd..53ac11c8 100644 --- a/cmd/wm/client.c +++ b/cmd/wm/client.c @@ -435,14 +435,10 @@ match_sizehints(Client *c) } void -resize_client(Client *c, XRectangle *r, XPoint *pt, Bool ignore_xcall) +resize_client(Client *c, XRectangle *r, Bool ignore_xcall) { Frame *f = c->frame[c->sel]; - - if(area2index(f->area)) - resize_area(c, r, pt); - else - f->rect = *r; + f->rect = *r; if((f->area->mode != Colstack) || (f->area->sel == frame2index(f))) match_sizehints(c); @@ -545,7 +541,7 @@ resize_all_clients() for(i = 0; i < nclient; i++) { Client *c = client[i]; if(c->nframe && c->frame[c->sel]->area) - resize_client(c, &c->frame[c->sel]->rect, 0, False); + resize_client(c, &c->frame[c->sel]->rect, False); } } diff --git a/cmd/wm/fs.c b/cmd/wm/fs.c index a7e5749b..89a7b0c2 100644 --- a/cmd/wm/fs.c +++ b/cmd/wm/fs.c @@ -1271,7 +1271,10 @@ xwrite(IXPConn *c, Fcall *fcall) if(m->qid.dir_type == FsDclient) { f = tag[i1]->area[i2]->frame[i3]; blitz_strtorect(&rect, &f->rect, buf); - resize_client(f->client, &f->rect, 0, False); + if(i2) + resize_area(f->client, &f->rect, nil); + else + resize_client(f->client, &f->rect, False); } break; case FsFexpand: diff --git a/cmd/wm/mouse.c b/cmd/wm/mouse.c index bbffe5aa..f03fc229 100644 --- a/cmd/wm/mouse.c +++ b/cmd/wm/mouse.c @@ -333,7 +333,10 @@ mouse_move(Client *c) case ButtonRelease: if(!first) { draw_pseudo_border(&frect); - resize_client(c, &frect, &pt, False); + if(area2index(c->frame[c->sel]->area)) + resize_area(c, &frect, &pt); + else + resize_client(c, &frect, False); } free(rects); XUngrabPointer(dpy, CurrentTime /* ev.xbutton.time */ ); @@ -579,7 +582,10 @@ mouse_resize(Client *c, Align align) draw_pseudo_border(&frect); pt.x = px; pt.y = py; - resize_client(c, &frect, &pt, False); + if(area2index(c->frame[c->sel]->area)) + resize_area(c, &frect, &pt); + else + resize_client(c, &frect, False); } XUngrabPointer(dpy, CurrentTime /* ev.xbutton.time */ ); XUngrabServer(dpy); diff --git a/cmd/wm/tag.c b/cmd/wm/tag.c index 5c5c055f..5577aad9 100644 --- a/cmd/wm/tag.c +++ b/cmd/wm/tag.c @@ -93,7 +93,7 @@ focus_tag(Tag *t) if(f->area->tag == t) { XMoveWindow(dpy, client[i]->framewin, f->rect.x, f->rect.y); if(client[i]->nframe > 1) - resize_client(client[i], &f->rect, nil, False); + resize_client(client[i], &f->rect, False); draw_client(client[i]); } else diff --git a/cmd/wm/wm.h b/cmd/wm/wm.h index 83cec89a..6deb9b6e 100644 --- a/cmd/wm/wm.h +++ b/cmd/wm/wm.h @@ -253,7 +253,7 @@ void manage_client(Client *c); void destroy_client(Client *c); Client *sel_client(); void focus_client(Client *c); -void resize_client(Client *c, XRectangle *r, XPoint *pt, Bool ignore_xcall); +void resize_client(Client *c, XRectangle *r, Bool ignore_xcall); void select_client(Client *c, char *arg); void send2area_client(Client *c, char *arg); void resize_all_clients();