changed border handling

master
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->w = wa->width;
c->h = wa->height;
c->border = wa->border_width;
if(c->w == sw && c->h == sh) {
c->border = 0;
c->x = sx;
c->y = sy;
}
else {
c->border = BORDERPX;
if(c->x + c->w + 2 * c->border > wax + waw)
c->x = wax + waw - c->w - 2 * c->border;
if(c->y + c->h + 2 * c->border > way + wah)
@ -205,7 +204,7 @@ manage(Window w, XWindowAttributes *wa) {
XSelectInput(dpy, w,
StructureNotifyMask | PropertyChangeMask | EnterWindowMask);
grabbuttons(c, False);
wc.border_width = c->border;
wc.border_width = BORDERPX;
XConfigureWindow(dpy, w, CWBorderWidth, &wc);
XSetWindowBorder(dpy, w, dc.norm[ColBorder]);
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)
return;
if(w == sw && h == sh)
c->border = 0;
else
c->border = BORDERPX;
/* offscreen appearance fixes */
if(x > sw)
x = sw - w - 2 * c->border;

View File

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

View File

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