wmii

git clone git://oldgit.suckless.org/wmii/
Log | Files | Refs | README | LICENSE

commit e66079c942f7acbe64deeee7928d77d4d80561b3
parent f19313209a2fd65ece3ecef558705c73b99d7c46
Author: Kris Maglione <kris@suckless.org>
Date:   Mon, 24 May 2010 20:09:11 -0400

Only resize clients when it would actually change their size. Prevents infinite loops with certain unscrupulous clients.

Diffstat:
PKGBUILD | 3+--
cmd/wmii/client.c | 10+++++++---
cmd/wmii/view.c | 2+-
3 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/PKGBUILD b/PKGBUILD @@ -1,6 +1,6 @@ pkgname="wmii-hg" -pkgver=2636 +pkgver=2637 pkgrel=1 pkgdesc="The latest hg pull of wmii, a lightweight, dynamic window manager for X11" url="http://wmii.suckless.org" @@ -15,7 +15,6 @@ optdepends=("plan9port: for use of the alternative plan9port wmiirc" \ provides=("wmii") conflicts=("wmii") source=() -options=(!makeflags) test -d src || mkdir src ln -snf .. src/wmii diff --git a/cmd/wmii/client.c b/cmd/wmii/client.c @@ -523,6 +523,7 @@ client_focus(Client *c) { void client_resize(Client *c, Rectangle r) { + bool client_resized, frame_resized; Frame *f; f = c->sel; @@ -547,10 +548,13 @@ client_resize(Client *c, Rectangle r) { client_unmap(c, IconicState); }else { client_map(c); - reshapewin(c->framewin, f->r); - reshapewin(&c->w, f->crect); + if((frame_resized = !eqrect(c->framewin->r, f->r))) + reshapewin(c->framewin, f->r); + if((client_resized = !eqrect(c->w.r, f->crect))) + reshapewin(&c->w, f->crect); map_frame(c); - client_configure(c); + if(client_resized || frame_resized) + client_configure(c); ewmh_framesize(c); } } diff --git a/cmd/wmii/view.c b/cmd/wmii/view.c @@ -215,11 +215,11 @@ view_update_rect(View *v) { return false; */ - top = 0; left = 0; right = 0; bottom = 0; + vec.n = 0; for(f=v->floating->frame; f; f=f->anext) { strut = f->client->strut; if(!strut)