changed border handling

This commit is contained in:
Anselm R. Garbe 2007-04-17 14:56:46 +02:00
parent be8d6d40f6
commit 464fc2cd18
3 changed files with 11 additions and 18 deletions

View file

@ -185,13 +185,12 @@ manage(Window w, XWindowAttributes *wa) {
c->y = wa->y; c->y = wa->y;
c->w = wa->width; c->w = wa->width;
c->h = wa->height; c->h = wa->height;
c->border = wa->border_width;
if(c->w == sw && c->h == sh) { if(c->w == sw && c->h == sh) {
c->border = 0;
c->x = sx; c->x = sx;
c->y = sy; c->y = sy;
} }
else { else {
c->border = BORDERPX;
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)
@ -205,7 +204,7 @@ manage(Window w, XWindowAttributes *wa) {
XSelectInput(dpy, w, XSelectInput(dpy, w,
StructureNotifyMask | PropertyChangeMask | EnterWindowMask); StructureNotifyMask | PropertyChangeMask | EnterWindowMask);
grabbuttons(c, False); grabbuttons(c, False);
wc.border_width = c->border; wc.border_width = BORDERPX;
XConfigureWindow(dpy, w, CWBorderWidth, &wc); XConfigureWindow(dpy, w, CWBorderWidth, &wc);
XSetWindowBorder(dpy, w, dc.norm[ColBorder]); XSetWindowBorder(dpy, w, dc.norm[ColBorder]);
configure(c); /* propagates border_width, if size doesn't change */ configure(c); /* propagates border_width, if size doesn't change */
@ -270,10 +269,6 @@ resize(Client *c, int x, int y, int w, int h, Bool sizehints) {
} }
if(w <= 0 || h <= 0) if(w <= 0 || h <= 0)
return; return;
if(w == sw && h == sh)
c->border = 0;
else
c->border = BORDERPX;
/* offscreen appearance fixes */ /* offscreen appearance fixes */
if(x > sw) if(x > sw)
x = sw - w - 2 * c->border; x = sw - w - 2 * c->border;

View file

@ -191,10 +191,8 @@ configurerequest(XEvent *e) {
if(isvisible(c)) if(isvisible(c))
XMoveResizeWindow(dpy, c->win, c->x, c->y, c->w, c->h); XMoveResizeWindow(dpy, c->win, c->x, c->y, c->w, c->h);
} }
else { else
configure(c); configure(c);
}
c->border = BORDERPX;
} }
else { else {
wc.x = ev->x; wc.x = ev->x;

View file

@ -38,18 +38,18 @@ tile(void) {
ny = way; ny = way;
if(i < nmaster) { if(i < nmaster) {
ny += i * mh; ny += i * mh;
nw = mw - 2 * BORDERPX; nw = mw - 2 * c->border;
nh = mh - 2 * BORDERPX; nh = mh - 2 * c->border;
} }
else { /* tile window */ else { /* tile window */
nx += mw; nx += mw;
nw = tw - 2 * BORDERPX; nw = tw - 2 * c->border;
if(th > 2 * BORDERPX) { if(th > 2 * c->border) {
ny += (i - nmaster) * th; ny += (i - nmaster) * th;
nh = th - 2 * BORDERPX; nh = th - 2 * c->border;
} }
else /* fallback if th <= 2 * BORDERPX */ else /* fallback if th <= 2 * c->border */
nh = wah - 2 * BORDERPX; nh = wah - 2 * c->border;
} }
resize(c, nx, ny, nw, nh, False); resize(c, nx, ny, nw, nh, False);
i++; i++;
@ -125,7 +125,7 @@ incmasterw(const char *arg) {
masterw = MASTERWIDTH; masterw = MASTERWIDTH;
else { else {
i = atoi(arg); i = atoi(arg);
if(waw * (masterw + i) / 1000 >= waw - 2 * BORDERPX if(waw * (masterw + i) / 1000 >= waw - 2 * BORDERPX
|| waw * (masterw + i) / 1000 <= 2 * BORDERPX) || waw * (masterw + i) / 1000 <= 2 * BORDERPX)
return; return;
masterw += i; masterw += i;