-/* (C)opyright MMVI Anselm R. Garbe <garbeam at gmail dot com>
+/* (C)opyright MMVI-MMVII Anselm R. Garbe <garbeam at gmail dot com>
* See LICENSE file for license details.
*/
#include "dwm.h"
sel = c;
if(old) {
grabbuttons(old, False);
- drawtitle(old);
+ drawclient(old);
}
}
if(c) {
c->snext = stack;
stack = c;
grabbuttons(c, True);
- drawtitle(c);
+ drawclient(c);
XSetInputFocus(dpy, c->win, RevertToPointerRoot, CurrentTime);
}
else
return NULL;
}
-void
-gravitate(Client *c, Bool invert) {
- int dx = 0, dy = 0;
-
- switch(c->grav) {
- default:
- break;
- case StaticGravity:
- case NorthWestGravity:
- case NorthGravity:
- case NorthEastGravity:
- dy = c->border;
- break;
- case EastGravity:
- case CenterGravity:
- case WestGravity:
- dy = -(c->h / 2) + c->border;
- break;
- case SouthEastGravity:
- case SouthGravity:
- case SouthWestGravity:
- dy = -(c->h);
- break;
- }
- switch (c->grav) {
- default:
- break;
- case StaticGravity:
- case NorthWestGravity:
- case WestGravity:
- case SouthWestGravity:
- dx = c->border;
- break;
- case NorthGravity:
- case CenterGravity:
- case SouthGravity:
- dx = -(c->w / 2) + c->border;
- break;
- case NorthEastGravity:
- case EastGravity:
- case SouthEastGravity:
- dx = -(c->w + c->border);
- break;
- }
- if(invert) {
- dx = -dx;
- dy = -dy;
- }
- c->x += dx;
- c->y += dy;
-}
-
void
killclient(Arg *arg) {
if(!sel)
c = emallocz(sizeof(Client));
c->tags = emallocz(ntags * sizeof(Bool));
c->win = w;
- c->border = wa->border_width;
+ c->border = 0;
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;
- updatesize(c);
+ updatesizehints(c);
if(c->x + c->w + 2 * BORDERPX > sw)
c->x = sw - c->w - 2 * BORDERPX;
if(c->x < sx)
updatetitle(c);
settags(c, getclient(trans));
if(!c->isfloat)
- c->isfloat = trans
- || (c->maxw && c->minw &&
- c->maxw == c->minw && c->maxh == c->minh);
+ c->isfloat = trans || c->isfixed;
resizetitle(c);
if(clients)
clients->prev = c;
}
void
-updatesize(Client *c) {
+updatesizehints(Client *c) {
long msize;
XSizeHints size;
}
else
c->minw = c->minh = 0;
- if(c->flags & PWinGravity)
- c->grav = size.win_gravity;
- else
- c->grav = NorthWestGravity;
+ c->isfixed = (c->maxw && c->minw && c->maxh && c->minh &&
+ c->maxw == c->minw && c->maxh == c->minh);
}
void
if(!name.nitems)
return;
if(name.encoding == XA_STRING)
- strncpy(c->name, (char *)name.value, sizeof(c->name));
+ strncpy(c->name, (char *)name.value, sizeof c->name);
else {
if(XmbTextPropertyToTextList(dpy, &name, &list, &n) >= Success
&& n > 0 && *list)
{
- strncpy(c->name, *list, sizeof(c->name));
+ strncpy(c->name, *list, sizeof c->name);
XFreeStringList(list);
}
}