removed client title bar
This commit is contained in:
		
							parent
							
								
									ae0b4fdd92
								
							
						
					
					
						commit
						6c5dc7017c
					
				
							
								
								
									
										50
									
								
								client.c
									
									
									
									
									
								
							
							
						
						
									
										50
									
								
								client.c
									
									
									
									
									
								
							| @ -60,12 +60,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; | ||||
| @ -242,19 +214,6 @@ resize(Client *c, Bool sizehints, Corner sticky) { | ||||
| 	XSync(dpy, False); | ||||
| } | ||||
| 
 | ||||
| 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; | ||||
| @ -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); | ||||
|  | ||||
							
								
								
									
										6
									
								
								draw.c
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								draw.c
									
									
									
									
									
								
							| @ -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); | ||||
| } | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										1
									
								
								dwm.1
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								dwm.1
									
									
									
									
									
								
							| @ -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 | ||||
|  | ||||
							
								
								
									
										5
									
								
								dwm.h
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								dwm.h
									
									
									
									
									
								
							| @ -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 */ | ||||
|  | ||||
							
								
								
									
										7
									
								
								event.c
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								event.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); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
							
								
								
									
										14
									
								
								view.c
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								view.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); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Anselm R. Garbe
						Anselm R. Garbe