diff options
| -rw-r--r-- | client.c | 50 | ||||
| -rw-r--r-- | draw.c | 6 | ||||
| -rw-r--r-- | dwm.1 | 1 | ||||
| -rw-r--r-- | dwm.h | 5 | ||||
| -rw-r--r-- | event.c | 7 | ||||
| -rw-r--r-- | view.c | 14 | 
6 files changed, 10 insertions, 73 deletions
| @@ -61,12 +61,6 @@ xerrordummy(Display *dsply, XErrorEvent *ee) {  /* extern functions */  void -ban(Client *c) { -	XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y); -	XMoveWindow(dpy, c->twin, c->tx + 2 * sw, c->ty); -} - -void  configure(Client *c) {  	XEvent synev; @@ -121,16 +115,6 @@ getclient(Window w) {  	return NULL;  } -Client * -getctitle(Window w) { -	Client *c; - -	for(c = clients; c; c = c->next) -		if(c->twin == w) -			return c; -	return NULL; -} -  void  killclient(Arg *arg) {  	if(!sel) @@ -145,17 +129,15 @@ void  manage(Window w, XWindowAttributes *wa) {  	Client *c;  	Window trans; -	XSetWindowAttributes twa;  	c = emallocz(sizeof(Client));  	c->tags = emallocz(ntags * sizeof(Bool));  	c->win = w;  	c->border = 0; -	c->x = c->tx = wa->x; -	c->y = c->ty = wa->y; -	c->w = c->tw = wa->width; +	c->x = wa->x; +	c->y = wa->y; +	c->w = wa->width;  	c->h = wa->height; -	c->th = bh;  	updatesizehints(c);  	if(c->x + c->w + 2 * BORDERPX > sw)  		c->x = sw - c->w - 2 * BORDERPX; @@ -169,27 +151,18 @@ manage(Window w, XWindowAttributes *wa) {  	XSelectInput(dpy, c->win,  		StructureNotifyMask | PropertyChangeMask | EnterWindowMask);  	XGetTransientForHint(dpy, c->win, &trans); -	twa.override_redirect = 1; -	twa.background_pixmap = ParentRelative; -	twa.event_mask = ExposureMask | EnterWindowMask; -	c->twin = XCreateWindow(dpy, root, c->tx, c->ty, c->tw, c->th, -			0, DefaultDepth(dpy, screen), CopyFromParent, -			DefaultVisual(dpy, screen), -			CWOverrideRedirect | CWBackPixmap | CWEventMask, &twa);  	grabbuttons(c, False);  	updatetitle(c);  	settags(c, getclient(trans));  	if(!c->isfloat)  		c->isfloat = trans || c->isfixed; -	resizetitle(c);  	if(clients)  		clients->prev = c;  	c->next = clients;  	c->snext = stack;  	stack = clients = c; -	ban(c); +	XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y);  	XMapWindow(dpy, c->win); -	XMapWindow(dpy, c->twin);  	if(isvisible(c))  		focus(c);  	arrange(); @@ -228,7 +201,6 @@ resize(Client *c, Bool sizehints, Corner sticky) {  		c->x = sw - c->w;  	if(c->y > sh)  		c->y = sh - c->h; -	resizetitle(c);  	wc.x = c->x;  	wc.y = c->y;  	wc.width = c->w; @@ -243,19 +215,6 @@ resize(Client *c, Bool sizehints, Corner sticky) {  }  void -resizetitle(Client *c) { -	c->tw = textw(c->name); -	if(c->tw > c->w) -		c->tw = c->w + 2 * BORDERPX; -	c->tx = c->x + c->w - c->tw + 2 * BORDERPX; -	c->ty = c->y; -	if(isvisible(c)) -		XMoveResizeWindow(dpy, c->twin, c->tx, c->ty, c->tw, c->th); -	else -		XMoveResizeWindow(dpy, c->twin, c->tx + 2 * sw, c->ty, c->tw, c->th); -} - -void  updatesizehints(Client *c) {  	long msize;  	XSizeHints size; @@ -331,7 +290,6 @@ unmanage(Client *c) {  		focus(nc);  	}  	XUngrabButton(dpy, AnyButton, AnyModifier, c->win); -	XDestroyWindow(dpy, c->twin);  	free(c->tags);  	free(c);  	XSync(dpy, False); @@ -141,16 +141,10 @@ void  drawclient(Client *c) {  	if(c == sel && issel) {  		drawstatus(); -		XUnmapWindow(dpy, c->twin);  		XSetWindowBorder(dpy, c->win, dc.sel[ColBG]);  		return;  	}  	XSetWindowBorder(dpy, c->win, dc.norm[ColBG]); -	XMapWindow(dpy, c->twin); -	dc.x = dc.y = 0; -	dc.w = c->tw; -	drawtext(c->name, dc.norm, False, False); -	XCopyArea(dpy, dc.drawable, c->twin, dc.gc, 0, 0, c->tw, c->th, 0, 0);  	XSync(dpy, False);  } @@ -26,7 +26,6 @@ which are applied to one or more windows are indicated with an empty square in  the top left corner.  .P  dwm draws a 1-pixel border around windows to indicate the focus state. -Unfocused windows contain a small bar in front of them displaying their title.  .SH OPTIONS  .TP  .B \-v @@ -78,7 +78,6 @@ struct Client {  	int proto;  	int x, y, w, h;  	int rx, ry, rw, rh; /* revert geometry */ -	int tx, ty, tw, th; /* title window geometry */  	int basew, baseh, incw, inch, maxw, maxh, minw, minh;  	long flags;   	unsigned int border; @@ -88,7 +87,6 @@ struct Client {  	Client *prev;  	Client *snext;  	Window win; -	Window twin;  };  extern const char *tags[];			/* all tags */ @@ -110,15 +108,12 @@ extern Display *dpy;  extern Window root, barwin;  /* client.c */ -extern void ban(Client *c);			/* ban c from screen */  extern void configure(Client *c);		/* send synthetic configure event */  extern void focus(Client *c);			/* focus c, c may be NULL */  extern Client *getclient(Window w);		/* return client of w */ -extern Client *getctitle(Window w);		/* return client of title window */  extern void killclient(Arg *arg);		/* kill c nicely */  extern void manage(Window w, XWindowAttributes *wa);	/* manage new client */  extern void resize(Client *c, Bool sizehints, Corner sticky); /* resize c*/ -extern void resizetitle(Client *c);		/* resizes c->twin correctly */  extern void updatesizehints(Client *c);		/* update the size hint variables of c */  extern void updatetitle(Client *c);		/* update the name of c */  extern void unmanage(Client *c);		/* destroy c */ @@ -196,7 +196,7 @@ configurerequest(XEvent *e) {  		if(c->isfloat) {  			resize(c, False, TopLeft);  			if(!isvisible(c)) -				ban(c); +				XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y);  		}  		else  			arrange(); @@ -230,7 +230,7 @@ enternotify(XEvent *e) {  	if(ev->mode != NotifyNormal || ev->detail == NotifyInferior)  		return; -	if(((c = getclient(ev->window)) || (c = getctitle(ev->window))) && isvisible(c)) +	if((c = getclient(ev->window)) && isvisible(c))  		focus(c);  	else if(ev->window == root) {  		issel = True; @@ -247,8 +247,6 @@ expose(XEvent *e) {  	if(ev->count == 0) {  		if(barwin == ev->window)  			drawstatus(); -		else if((c = getctitle(ev->window))) -			drawclient(c);  	}  } @@ -331,7 +329,6 @@ propertynotify(XEvent *e) {  		}  		if(ev->atom == XA_WM_NAME || ev->atom == netatom[NetWMName]) {  			updatetitle(c); -			resizetitle(c);  			drawclient(c);  		}  	} @@ -59,7 +59,7 @@ dofloat(void) {  			resize(c, True, TopLeft);  		}  		else -			ban(c); +			XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y);  	}  	if(!sel || !isvisible(sel)) {  		for(c = stack; c && !isvisible(c); c = c->snext); @@ -109,8 +109,7 @@ dotile(void) {  			i++;  		}  		else -			ban(c); - +			XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y);  	if(!sel || !isvisible(sel)) {  		for(c = stack; c && !isvisible(c); c = c->snext);  		focus(c); @@ -191,19 +190,14 @@ restack(void) {  		drawstatus();  		return;  	} -	if(sel->isfloat || arrange == dofloat) { +	if(sel->isfloat || arrange == dofloat)  		XRaiseWindow(dpy, sel->win); -		XRaiseWindow(dpy, sel->twin); -	}  	if(arrange != dofloat) { -		if(!sel->isfloat) { -			XLowerWindow(dpy, sel->twin); +		if(!sel->isfloat)  			XLowerWindow(dpy, sel->win); -		}  		for(c = nexttiled(clients); c; c = nexttiled(c->next)) {  			if(c == sel)  				continue; -			XLowerWindow(dpy, c->twin);  			XLowerWindow(dpy, c->win);  		}  	} | 
