Compare commits

...

5 Commits
3.2 ... 3.2.2

4 changed files with 19 additions and 13 deletions

View File

@ -31,3 +31,5 @@ c7f84f23ec5aef29988dcdc4ec22a7352ee8f58e 2.5.1
3a5910fac3ccb522a98aeeba7af7008530b25092 2.9 3a5910fac3ccb522a98aeeba7af7008530b25092 2.9
76b58d21ea98257c05565a3b9c850b9b26a32968 3.0 76b58d21ea98257c05565a3b9c850b9b26a32968 3.0
e1c8bef05e6e48df4f26471ea0712aa43ab9d949 3.1 e1c8bef05e6e48df4f26471ea0712aa43ab9d949 3.1
4ce65f61f01b055fa6c2901c6d2527ef741aa4bf 3.2
f2cabc83a18f9b5b548159329ddd4dee904fa31f 3.2.1

View File

@ -142,14 +142,14 @@ manage(Window w, XWindowAttributes *wa) {
} }
else { else {
c->border = BORDERPX; c->border = BORDERPX;
if(c->x < wax)
c->x = wax;
if(c->y < way)
c->y = way;
if(c->x + c->w + 2 * c->border > wax + waw) if(c->x + c->w + 2 * c->border > wax + waw)
c->x = wax + waw - c->w - 2 * c->border; c->x = wax + waw - c->w - 2 * c->border;
if(c->y + c->h + 2 * c->border > way + wah) if(c->y + c->h + 2 * c->border > way + wah)
c->y = way + wah - c->h - 2 * c->border; c->y = way + wah - c->h - 2 * c->border;
if(c->x < wax)
c->x = wax;
if(c->y < way)
c->y = way;
} }
updatesizehints(c); updatesizehints(c);
c->proto = getproto(c->win); c->proto = getproto(c->win);
@ -178,6 +178,8 @@ void
resize(Client *c, Bool sizehints) { resize(Client *c, Bool sizehints) {
XWindowChanges wc; XWindowChanges wc;
if(c->w <= 0 || c->h <= 0)
return;
if(sizehints) { if(sizehints) {
if(c->incw) if(c->incw)
c->w -= (c->w - c->basew) % c->incw; c->w -= (c->w - c->basew) % c->incw;
@ -197,14 +199,14 @@ resize(Client *c, Bool sizehints) {
else else
c->border = BORDERPX; c->border = BORDERPX;
/* offscreen appearance fixes */ /* offscreen appearance fixes */
if(c->x + c->w + 2 * c->border < sx)
c->x = sx;
if(c->y + c->h + 2 * c->border < sy)
c->y = sy;
if(c->x > sw) if(c->x > sw)
c->x = sw - c->w - 2 * c->border; c->x = sw - c->w - 2 * c->border;
if(c->y > sh) if(c->y > sh)
c->y = sh - c->h - 2 * c->border; c->y = sh - c->h - 2 * c->border;
if(c->x + c->w + 2 * c->border < sx)
c->x = sx;
if(c->y + c->h + 2 * c->border < sy)
c->y = sy;
wc.x = c->x; wc.x = c->x;
wc.y = c->y; wc.y = c->y;
wc.width = c->w; wc.width = c->w;

View File

@ -1,5 +1,5 @@
# dwm version # dwm version
VERSION = 3.2 VERSION = 3.2.2
# Customize below to fit your system # Customize below to fit your system

10
view.c
View File

@ -98,11 +98,11 @@ dotile(void) {
else { /* tile window */ else { /* tile window */
c->x += mw; c->x += mw;
c->w = tw - 2 * BORDERPX; c->w = tw - 2 * BORDERPX;
if(th > bh) { if(th - 2 * BORDERPX > bh) {
c->y += (i - nmaster) * th; c->y += (i - nmaster) * th;
c->h = th - 2 * BORDERPX; c->h = th - 2 * BORDERPX;
} }
else /* fallback if th < bh */ else /* fallback if th - 2 * BORDERPX < bh */
c->h = wah - 2 * BORDERPX; c->h = wah - 2 * BORDERPX;
} }
resize(c, False); resize(c, False);
@ -149,7 +149,8 @@ focusprev(Arg *arg) {
void void
incnmaster(Arg *arg) { incnmaster(Arg *arg) {
if((arrange == dofloat) || (nmaster + arg->i < 1) || (wah / (nmaster + arg->i) < bh)) if((arrange == dofloat) || (nmaster + arg->i < 1)
|| (wah / (nmaster + arg->i) - 2 * BORDERPX < bh))
return; return;
nmaster += arg->i; nmaster += arg->i;
if(sel) if(sel)
@ -173,7 +174,8 @@ resizemaster(Arg *arg) {
if(arg->i == 0) if(arg->i == 0)
master = MASTER; master = MASTER;
else { else {
if(master + arg->i > 950 || master + arg->i < 50) if(waw * (master + arg->i) / 1000 > waw - bh - 2 * BORDERPX
|| waw * (master + arg->i) / 1000 < bh + 2 * BORDERPX)
return; return;
master += arg->i; master += arg->i;
} }