--- a/client.c Fri Oct 27 12:05:47 2006 +0200
+++ b/client.c Fri Oct 27 13:28:26 2006 +0200
@@ -209,6 +209,8 @@
c->h = wa->height;
c->th = bh;
updatesize(c);
+ c->isfixed = (c->maxw && c->minw && c->maxh && c->minh &&
+ c->maxw == c->minw && c->maxh == c->minh);
if(c->x + c->w + 2 * BORDERPX > sw)
c->x = sw - c->w - 2 * BORDERPX;
if(c->x < sx)
@@ -232,9 +234,7 @@
updatetitle(c);
settags(c, getclient(trans));
if(!c->isfloat)
- c->isfloat = trans
- || (c->maxw && c->minw && c->maxh && c->minh &&
- c->maxw == c->minw && c->maxh == c->minh);
+ c->isfloat = trans || c->isfixed;
resizetitle(c);
if(clients)
clients->prev = c;
--- a/dwm.h Fri Oct 27 12:05:47 2006 +0200
+++ b/dwm.h Fri Oct 27 13:28:26 2006 +0200
@@ -83,7 +83,7 @@
int grav;
long flags;
unsigned int border, weight;
- Bool isfloat, ismax;
+ Bool isfloat, isfixed, ismax;
Bool *tags;
Client *next;
Client *prev;
--- a/event.c Fri Oct 27 12:05:47 2006 +0200
+++ b/event.c Fri Oct 27 13:28:26 2006 +0200
@@ -136,7 +136,7 @@
}
else if(ev->button == Button2)
zoom(NULL);
- else if(ev->button == Button3 && (arrange == dofloat || c->isfloat)) {
+ else if(ev->button == Button3 && (arrange == dofloat || c->isfloat) && !c->isfixed) {
restack();
resizemouse(c);
}
--- a/view.c Fri Oct 27 12:05:47 2006 +0200
+++ b/view.c Fri Oct 27 13:28:26 2006 +0200
@@ -45,8 +45,7 @@
togglemax(Client *c) {
XEvent ev;
- if (x->maxw && x->minw && x->maxh && x->minh &&
- x->maxw == x->minw && x->maxh == x->minh)
+ if(c->isfixed)
return;
if((c->ismax = !c->ismax)) {