Merge branch 'allpatch'
# Conflicts: # config.def.h
This commit is contained in:
		
						commit
						1bfedd8be1
					
				| @ -34,9 +34,9 @@ static const Rule rules[] = { | |||||||
| 	 *	WM_CLASS(STRING) = instance, class | 	 *	WM_CLASS(STRING) = instance, class | ||||||
| 	 *	WM_NAME(STRING) = title | 	 *	WM_NAME(STRING) = title | ||||||
| 	 */ | 	 */ | ||||||
| 	/* class      instance    title       tags mask     isfloating   monitor */ | 	/* class      instance    title       tags mask     iscentered   isfloating   monitor */ | ||||||
| 	{ "Gimp",     NULL,       NULL,       0,            1,           -1 }, | 	{ "Gimp",     NULL,       NULL,       0,            0,           1,           -1 }, | ||||||
| 	{ "Firefox",  NULL,       NULL,       0,            0,           -1 }, | 	{ "Firefox",  NULL,       NULL,       0,            0,           0,           -1 }, | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| /* layout(s) */ | /* layout(s) */ | ||||||
|  | |||||||
							
								
								
									
										13
									
								
								dwm.c
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								dwm.c
									
									
									
									
									
								
							| @ -94,7 +94,7 @@ struct Client { | |||||||
| 	int basew, baseh, incw, inch, maxw, maxh, minw, minh; | 	int basew, baseh, incw, inch, maxw, maxh, minw, minh; | ||||||
| 	int bw, oldbw; | 	int bw, oldbw; | ||||||
| 	unsigned int tags; | 	unsigned int tags; | ||||||
| 	int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen; | 	int isfixed, iscentered, isfloating, isurgent, neverfocus, oldstate, isfullscreen; | ||||||
| 	Client *next; | 	Client *next; | ||||||
| 	Client *snext; | 	Client *snext; | ||||||
| 	Monitor *mon; | 	Monitor *mon; | ||||||
| @ -141,6 +141,7 @@ typedef struct { | |||||||
| 	const char *instance; | 	const char *instance; | ||||||
| 	const char *title; | 	const char *title; | ||||||
| 	unsigned int tags; | 	unsigned int tags; | ||||||
|  | 	int iscentered; | ||||||
| 	int isfloating; | 	int isfloating; | ||||||
| 	int monitor; | 	int monitor; | ||||||
| } Rule; | } Rule; | ||||||
| @ -308,6 +309,7 @@ applyrules(Client *c) | |||||||
| 	XClassHint ch = { NULL, NULL }; | 	XClassHint ch = { NULL, NULL }; | ||||||
| 
 | 
 | ||||||
| 	/* rule matching */ | 	/* rule matching */ | ||||||
|  | 	c->iscentered = 0; | ||||||
| 	c->isfloating = 0; | 	c->isfloating = 0; | ||||||
| 	c->tags = 0; | 	c->tags = 0; | ||||||
| 	XGetClassHint(dpy, c->win, &ch); | 	XGetClassHint(dpy, c->win, &ch); | ||||||
| @ -320,6 +322,7 @@ applyrules(Client *c) | |||||||
| 		&& (!r->class || strstr(class, r->class)) | 		&& (!r->class || strstr(class, r->class)) | ||||||
| 		&& (!r->instance || strstr(instance, r->instance))) | 		&& (!r->instance || strstr(instance, r->instance))) | ||||||
| 		{ | 		{ | ||||||
|  | 			c->iscentered = r->iscentered; | ||||||
| 			c->isfloating = r->isfloating; | 			c->isfloating = r->isfloating; | ||||||
| 			c->tags |= r->tags; | 			c->tags |= r->tags; | ||||||
| 			for (m = mons; m && m->num != r->monitor; m = m->next); | 			for (m = mons; m && m->num != r->monitor; m = m->next); | ||||||
| @ -1134,6 +1137,10 @@ manage(Window w, XWindowAttributes *wa) | |||||||
| 	updatewindowtype(c); | 	updatewindowtype(c); | ||||||
| 	updatesizehints(c); | 	updatesizehints(c); | ||||||
| 	updatewmhints(c); | 	updatewmhints(c); | ||||||
|  | 	if (c->iscentered) { | ||||||
|  | 		c->x = c->mon->mx + (c->mon->mw - WIDTH(c)) / 2; | ||||||
|  | 		c->y = c->mon->my + (c->mon->mh - HEIGHT(c)) / 2; | ||||||
|  | 	} | ||||||
| 	XSelectInput(dpy, w, EnterWindowMask|FocusChangeMask|PropertyChangeMask|StructureNotifyMask); | 	XSelectInput(dpy, w, EnterWindowMask|FocusChangeMask|PropertyChangeMask|StructureNotifyMask); | ||||||
| 	grabbuttons(c, 0); | 	grabbuttons(c, 0); | ||||||
| 	if (!c->isfloating) | 	if (!c->isfloating) | ||||||
| @ -2155,8 +2162,10 @@ updatewindowtype(Client *c) | |||||||
| 
 | 
 | ||||||
| 	if (state == netatom[NetWMFullscreen]) | 	if (state == netatom[NetWMFullscreen]) | ||||||
| 		setfullscreen(c, 1); | 		setfullscreen(c, 1); | ||||||
| 	if (wtype == netatom[NetWMWindowTypeDialog]) | 	if (wtype == netatom[NetWMWindowTypeDialog]) { | ||||||
|  | 		c->iscentered = 1; | ||||||
| 		c->isfloating = 1; | 		c->isfloating = 1; | ||||||
|  | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void | void | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user