aboutsummaryrefslogtreecommitdiffstats
path: root/client.c
diff options
context:
space:
mode:
authorarg@10ksloc.org <unknown>2006-07-20 07:26:23 +0200
committerarg@10ksloc.org <unknown>2006-07-20 07:26:23 +0200
commit11737233a7ce6bc656bc7bc061c68eeda824ee9b (patch)
tree4d2f9452d9bd1ddf3dd572ed03603d7d4abd7185 /client.c
parentbcaf6a7a0f492c3fafc4baabd2dc06f5191417ee (diff)
downloaddwm-11737233a7ce6bc656bc7bc061c68eeda824ee9b.tar.gz
removed c->f{x,y,w,h} and c->t{x,y,w,h} in favor for the new rule handling remembering two kinds of geometries is unnecessary, removed the randomized (x,y) setting on dofloat startup, was kind too random und unpredictable
Diffstat (limited to 'client.c')
-rw-r--r--client.c128
1 files changed, 52 insertions, 76 deletions
diff --git a/client.c b/client.c
index aa96f4f..c797972 100644
--- a/client.c
+++ b/client.c
@@ -16,19 +16,19 @@ resizetitle(Client *c)
{
int i;
- c->bw = 0;
+ c->tw = 0;
for(i = 0; i < TLast; i++)
if(c->tags[i])
- c->bw += textw(c->tags[i]);
- c->bw += textw(c->name);
- if(c->bw > *c->w)
- c->bw = *c->w + 2;
- c->bx = *c->x + *c->w - c->bw + 2;
- c->by = *c->y;
+ c->tw += textw(c->tags[i]);
+ c->tw += textw(c->name);
+ if(c->tw > c->w)
+ c->tw = c->w + 2;
+ c->tx = c->x + c->w - c->tw + 2;
+ c->ty = c->y;
if(c->tags[tsel])
- XMoveResizeWindow(dpy, c->title, c->bx, c->by, c->bw, c->bh);
+ XMoveResizeWindow(dpy, c->title, c->tx, c->ty, c->tw, c->th);
else
- XMoveResizeWindow(dpy, c->title, c->bx + 2 * sw, c->by, c->bw, c->bh);
+ XMoveResizeWindow(dpy, c->title, c->tx + 2 * sw, c->ty, c->tw, c->th);
}
@@ -43,8 +43,8 @@ xerrordummy(Display *dsply, XErrorEvent *ee)
void
ban(Client *c)
{
- XMoveWindow(dpy, c->win, *c->x + 2 * sw, *c->y);
- XMoveWindow(dpy, c->title, c->bx + 2 * sw, c->by);
+ XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y);
+ XMoveWindow(dpy, c->title, c->tx + 2 * sw, c->ty);
}
void
@@ -128,12 +128,12 @@ gravitate(Client *c, Bool invert)
case EastGravity:
case CenterGravity:
case WestGravity:
- dy = -(*c->h / 2) + c->border;
+ dy = -(c->h / 2) + c->border;
break;
case SouthEastGravity:
case SouthGravity:
case SouthWestGravity:
- dy = -(*c->h);
+ dy = -(c->h);
break;
default:
break;
@@ -149,12 +149,12 @@ gravitate(Client *c, Bool invert)
case NorthGravity:
case CenterGravity:
case SouthGravity:
- dx = -(*c->w / 2) + c->border;
+ dx = -(c->w / 2) + c->border;
break;
case NorthEastGravity:
case EastGravity:
case SouthEastGravity:
- dx = -(*c->w + c->border);
+ dx = -(c->w + c->border);
break;
default:
break;
@@ -164,8 +164,8 @@ gravitate(Client *c, Bool invert)
dx = -dx;
dy = -dy;
}
- *c->x += dx;
- *c->y += dy;
+ c->x += dx;
+ c->y += dy;
}
void
@@ -203,19 +203,14 @@ manage(Window w, XWindowAttributes *wa)
c = emallocz(sizeof(Client));
c->win = w;
- c->bx = c->fx = c->tx = wa->x;
- c->by = c->fy = c->ty = wa->y;
- c->bw = c->fw = c->tw = wa->width;
- c->fh = c->th = wa->height;
- c->bh = bh;
+ c->x = c->tx = wa->x;
+ c->y = c->ty = wa->y;
+ c->w = c->tw = wa->width;
+ c->h = wa->height;
+ c->th = bh;
- diff = sw - c->fw;
- c->fx = random() % (diff ? diff : 1);
- diff = sh - c->fh - bh;
- c->fy = random() % (diff ? diff : 1);
-
- if(c->fy < bh)
- c->by = c->fy = c->ty = bh;
+ if(c->y < bh)
+ c->y = c->ty = bh;
c->border = 1;
c->proto = getproto(c->win);
@@ -227,7 +222,7 @@ manage(Window w, XWindowAttributes *wa)
twa.background_pixmap = ParentRelative;
twa.event_mask = ExposureMask;
- c->title = XCreateWindow(dpy, root, c->bx, c->by, c->bw, c->bh,
+ c->title = XCreateWindow(dpy, root, c->tx, c->ty, c->tw, c->th,
0, DefaultDepth(dpy, screen), CopyFromParent,
DefaultVisual(dpy, screen),
CWOverrideRedirect | CWBackPixmap | CWEventMask, &twa);
@@ -251,9 +246,7 @@ manage(Window w, XWindowAttributes *wa)
(c->maxw == c->minw) && (c->maxh == c->minh));
- setgeom(c);
settitle(c);
-
arrange(NULL);
/* mapping the window now prevents flicker */
@@ -273,10 +266,10 @@ maximize(Arg *arg)
{
if(!sel)
return;
- *sel->x = sx;
- *sel->y = sy + bh;
- *sel->w = sw - 2 * sel->border;
- *sel->h = sh - 2 * sel->border - bh;
+ sel->x = sx;
+ sel->y = sy + bh;
+ sel->w = sw - 2 * sel->border;
+ sel->h = sh - 2 * sel->border - bh;
higher(sel);
resize(sel, False, TopLeft);
}
@@ -297,43 +290,43 @@ void
resize(Client *c, Bool inc, Corner sticky)
{
XConfigureEvent e;
- int right = *c->x + *c->w;
- int bottom = *c->y + *c->h;
+ int right = c->x + c->w;
+ int bottom = c->y + c->h;
if(inc) {
if(c->incw)
- *c->w -= (*c->w - c->basew) % c->incw;
+ c->w -= (c->w - c->basew) % c->incw;
if(c->inch)
- *c->h -= (*c->h - c->baseh) % c->inch;
+ c->h -= (c->h - c->baseh) % c->inch;
}
- if(*c->x > sw) /* might happen on restart */
- *c->x = sw - *c->w;
- if(*c->y > sh)
- *c->y = sh - *c->h;
- if(c->minw && *c->w < c->minw)
- *c->w = c->minw;
- if(c->minh && *c->h < c->minh)
- *c->h = c->minh;
- if(c->maxw && *c->w > c->maxw)
- *c->w = c->maxw;
- if(c->maxh && *c->h > c->maxh)
- *c->h = c->maxh;
+ if(c->x > sw) /* might happen on restart */
+ c->x = sw - c->w;
+ if(c->y > sh)
+ c->y = sh - c->h;
+ if(c->minw && c->w < c->minw)
+ c->w = c->minw;
+ if(c->minh && c->h < c->minh)
+ c->h = c->minh;
+ if(c->maxw && c->w > c->maxw)
+ c->w = c->maxw;
+ if(c->maxh && c->h > c->maxh)
+ c->h = c->maxh;
if(sticky == TopRight || sticky == BotRight)
- *c->x = right - *c->w;
+ c->x = right - c->w;
if(sticky == BotLeft || sticky == BotRight)
- *c->y = bottom - *c->h;
+ c->y = bottom - c->h;
resizetitle(c);
XSetWindowBorderWidth(dpy, c->win, 1);
- XMoveResizeWindow(dpy, c->win, *c->x, *c->y, *c->w, *c->h);
+ XMoveResizeWindow(dpy, c->win, c->x, c->y, c->w, c->h);
e.type = ConfigureNotify;
e.event = c->win;
e.window = c->win;
- e.x = *c->x;
- e.y = *c->y;
- e.width = *c->w;
- e.height = *c->h;
+ e.x = c->x;
+ e.y = c->y;
+ e.width = c->w;
+ e.height = c->h;
e.border_width = c->border;
e.above = None;
e.override_redirect = False;
@@ -342,23 +335,6 @@ resize(Client *c, Bool inc, Corner sticky)
}
void
-setgeom(Client *c)
-{
- if((arrange == dotile) && !c->isfloat) {
- c->x = &c->tx;
- c->y = &c->ty;
- c->w = &c->tw;
- c->h = &c->th;
- }
- else {
- c->x = &c->fx;
- c->y = &c->fy;
- c->w = &c->fw;
- c->h = &c->fh;
- }
-}
-
-void
setsize(Client *c)
{
XSizeHints size;
remember that computers suck.