dwm does not always leave the fullscreen mode correctly.
For example, if you use the mouse to resize a fullscreen client, the boarder
does not get painted, which indicates that internally the isfullscreen flag
is still set. A similar effect happens if togglefloat (Alt-Shift-Space) is
applied to a fullscreen client.
The attached patch fixes this.
Andreas
# HG changeset patch
# Parent 825580c0682efa35ff2e2cd003e552c4af75982b
diff --git a/dwm.c b/dwm.c
--- a/dwm.c
+++ b/dwm.c
@@ -1268,6 +1268,8 @@
togglefloating(NULL);
}
if(!selmon->lt[selmon->sellt]->arrange || c->isfloating)
+ if (c-> isfullscreen)
+ setfullscreen(c,False);
resize(c, nx, ny, c->w, c->h, True);
break;
}
@@ -1403,8 +1405,11 @@
&& (abs(nw - c->w) > snap || abs(nh - c->h) >
snap))
togglefloating(NULL);
}
- if(!selmon->lt[selmon->sellt]->arrange || c->isfloating)
+ if(!selmon->lt[selmon->sellt]->arrange ||
c->isfloating) {
+ if (c-> isfullscreen)
+ setfullscreen(c,False);
resize(c, c->x, c->y, nw, nh, True);
+ }
break;
}
} while(ev.type != ButtonRelease);
@@ -1756,6 +1761,10 @@
if(selmon->sel->isfloating)
resize(selmon->sel, selmon->sel->x, selmon->sel->y,
selmon->sel->w, selmon->sel->h, False);
+ else {
+ if (selmon->sel->isfullscreen)
+ setfullscreen(selmon->sel,False);
+ }
arrange(selmon);
}