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:
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)