simplified Mod-m
This commit is contained in:
		
							parent
							
								
									d66ad1457e
								
							
						
					
					
						commit
						5f19423c7b
					
				| @ -46,7 +46,7 @@ Key keys[] = { | ||||
| 	{ MODKEY,			XK_k,		focusprev,	NULL }, | ||||
| 	{ MODKEY,			XK_h,		setmwfact,	"-0.05" }, | ||||
| 	{ MODKEY,			XK_l,		setmwfact,	"+0.05" }, | ||||
| 	{ MODKEY,			XK_m,		togglemax,	NULL }, | ||||
| 	{ MODKEY,			XK_m,		maximize,	NULL }, | ||||
| 	{ MODKEY,			XK_r,		reapply,	NULL }, | ||||
| 	{ MODKEY,			XK_Return,	zoom,		NULL }, | ||||
| 	{ MODKEY,			XK_Tab,		viewprevtag,	NULL }, | ||||
|  | ||||
							
								
								
									
										2
									
								
								dwm.1
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								dwm.1
									
									
									
									
									
								
							| @ -78,7 +78,7 @@ Focus previous window. | ||||
| Increases the master area width about 5% (tiled layout only). | ||||
| .TP | ||||
| .B Mod1\-m | ||||
| Toggles maximization of current window. | ||||
| Maximizes current window (floating layout/window only). | ||||
| .TP | ||||
| .B Mod1\-r | ||||
| Re-applies tagging rules to all windows. | ||||
|  | ||||
							
								
								
									
										46
									
								
								dwm.c
									
									
									
									
									
								
							
							
						
						
									
										46
									
								
								dwm.c
									
									
									
									
									
								
							| @ -61,12 +61,11 @@ typedef struct Client Client; | ||||
| struct Client { | ||||
| 	char name[256]; | ||||
| 	int x, y, w, h; | ||||
| 	int rx, ry, rw, rh; /* revert geometry */ | ||||
| 	int basew, baseh, incw, inch, maxw, maxh, minw, minh; | ||||
| 	int minax, maxax, minay, maxay; | ||||
| 	long flags; | ||||
| 	unsigned int border, oldborder; | ||||
| 	Bool isbanned, isfixed, ismax, isfloating, wasfloating; | ||||
| 	Bool isbanned, isfixed, isfloating; | ||||
| 	Bool *tags; | ||||
| 	Client *next; | ||||
| 	Client *prev; | ||||
| @ -157,6 +156,7 @@ void leavenotify(XEvent *e); | ||||
| void manage(Window w, XWindowAttributes *wa); | ||||
| void mappingnotify(XEvent *e); | ||||
| void maprequest(XEvent *e); | ||||
| void maximize(const char *arg); | ||||
| void movemouse(Client *c); | ||||
| Client *nexttiled(Client *c); | ||||
| void propertynotify(XEvent *e); | ||||
| @ -178,7 +178,6 @@ unsigned int textw(const char *text); | ||||
| void tile(void); | ||||
| void togglebar(const char *arg); | ||||
| void togglefloating(const char *arg); | ||||
| void togglemax(const char *arg); | ||||
| void toggletag(const char *arg); | ||||
| void toggleview(const char *arg); | ||||
| void unban(Client *c); | ||||
| @ -466,7 +465,6 @@ configurerequest(XEvent *e) { | ||||
| 	XWindowChanges wc; | ||||
| 
 | ||||
| 	if((c = getclient(ev->window))) { | ||||
| 		c->ismax = False; | ||||
| 		if(ev->value_mask & CWBorderWidth) | ||||
| 			c->border = ev->border_width; | ||||
| 		if(c->isfixed || c->isfloating || (floating == layout->arrange)) { | ||||
| @ -563,7 +561,7 @@ drawbar(void) { | ||||
| 		dc.x = x; | ||||
| 		if(sel) { | ||||
| 			drawtext(sel->name, dc.sel); | ||||
| 			drawsquare(sel->ismax, sel->isfloating, dc.sel); | ||||
| 			drawsquare(False, sel->isfloating, dc.sel); | ||||
| 		} | ||||
| 		else | ||||
| 			drawtext(NULL, dc.norm); | ||||
| @ -1078,6 +1076,13 @@ maprequest(XEvent *e) { | ||||
| 		manage(ev->window, &wa); | ||||
| } | ||||
| 
 | ||||
| void | ||||
| maximize(const char *arg) { | ||||
| 	if(!sel || (!sel->isfloating && layout->arrange != floating)) | ||||
| 		return; | ||||
| 	resize(sel, wax, way, waw - 2 * sel->border, wah - 2 * sel->border, True); | ||||
| } | ||||
| 
 | ||||
| void | ||||
| movemouse(Client *c) { | ||||
| 	int x1, y1, ocx, ocy, di, nx, ny; | ||||
| @ -1090,7 +1095,6 @@ movemouse(Client *c) { | ||||
| 	if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync, | ||||
| 			None, cursor[CurMove], CurrentTime) != GrabSuccess) | ||||
| 		return; | ||||
| 	c->ismax = False; | ||||
| 	XQueryPointer(dpy, root, &dummy, &dummy, &x1, &y1, &di, &di, &dui); | ||||
| 	for(;;) { | ||||
| 		XMaskEvent(dpy, MOUSEMASK | ExposureMask | SubstructureRedirectMask, &ev); | ||||
| @ -1248,7 +1252,6 @@ resizemouse(Client *c) { | ||||
| 	if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync, | ||||
| 			None, cursor[CurResize], CurrentTime) != GrabSuccess) | ||||
| 		return; | ||||
| 	c->ismax = False; | ||||
| 	XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w + c->border - 1, c->h + c->border - 1); | ||||
| 	for(;;) { | ||||
| 		XMaskEvent(dpy, MOUSEMASK | ExposureMask | SubstructureRedirectMask , &ev); | ||||
| @ -1609,7 +1612,6 @@ tile(void) { | ||||
| 	ny = way; | ||||
| 	nw = 0; /* gcc stupidity requires this */ | ||||
| 	for(i = 0, c = mc = nexttiled(clients); c; c = nexttiled(c->next), i++) { | ||||
| 		c->ismax = False; | ||||
| 		if(i == 0) { /* master */ | ||||
| 			nw = mw - 2 * c->border; | ||||
| 			nh = wah - 2 * c->border; | ||||
| @ -1654,34 +1656,6 @@ togglefloating(const char *arg) { | ||||
| 	arrange(); | ||||
| } | ||||
| 
 | ||||
| void | ||||
| togglemax(const char *arg) { | ||||
| 	XEvent ev; | ||||
| 
 | ||||
| 	if(!sel || sel->isfixed) | ||||
| 		return; | ||||
| 	if((sel->ismax = !sel->ismax)) { | ||||
| 		if((layout->arrange == floating) || sel->isfloating) | ||||
| 			sel->wasfloating = True; | ||||
| 		else { | ||||
| 			togglefloating(NULL); | ||||
| 			sel->wasfloating = False; | ||||
| 		} | ||||
| 		sel->rx = sel->x; | ||||
| 		sel->ry = sel->y; | ||||
| 		sel->rw = sel->w; | ||||
| 		sel->rh = sel->h; | ||||
| 		resize(sel, wax, way, waw - 2 * sel->border, wah - 2 * sel->border, True); | ||||
| 	} | ||||
| 	else { | ||||
| 		resize(sel, sel->rx, sel->ry, sel->rw, sel->rh, True); | ||||
| 		if(!sel->wasfloating) | ||||
| 			togglefloating(NULL); | ||||
| 	} | ||||
| 	drawbar(); | ||||
| 	while(XCheckMaskEvent(dpy, EnterWindowMask, &ev)); | ||||
| } | ||||
| 
 | ||||
| void | ||||
| toggletag(const char *arg) { | ||||
| 	unsigned int i, j; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user