fixed tagmon, re-using detach/detachstack and attach/attachstack
This commit is contained in:
		
							parent
							
								
									913333f518
								
							
						
					
					
						commit
						54dc0d542c
					
				
					 2 changed files with 18 additions and 9 deletions
				
			
		|  | @ -11,8 +11,8 @@ X11INC = /usr/X11R6/include | ||||||
| X11LIB = /usr/X11R6/lib | X11LIB = /usr/X11R6/lib | ||||||
| 
 | 
 | ||||||
| # Xinerama, un-comment if you want it
 | # Xinerama, un-comment if you want it
 | ||||||
| #XINERAMALIBS = -L${X11LIB} -lXinerama
 | XINERAMALIBS = -L${X11LIB} -lXinerama | ||||||
| #XINERAMAFLAGS = -DXINERAMA
 | XINERAMAFLAGS = -DXINERAMA | ||||||
| 
 | 
 | ||||||
| # includes and libs
 | # includes and libs
 | ||||||
| INCS = -I. -I/usr/include -I${X11INC} | INCS = -I. -I/usr/include -I${X11INC} | ||||||
|  |  | ||||||
							
								
								
									
										23
									
								
								dwm.c
									
										
									
									
									
								
							
							
						
						
									
										23
									
								
								dwm.c
									
										
									
									
									
								
							|  | @ -375,14 +375,14 @@ arrange(void) { | ||||||
| 
 | 
 | ||||||
| void | void | ||||||
| attach(Client *c) { | attach(Client *c) { | ||||||
| 	c->next = selmon->clients; | 	c->next = c->mon->clients; | ||||||
| 	selmon->clients = c; | 	c->mon->clients = c; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void | void | ||||||
| attachstack(Client *c) { | attachstack(Client *c) { | ||||||
| 	c->snext = selmon->stack; | 	c->snext = c->mon->stack; | ||||||
| 	selmon->stack = c; | 	c->mon->stack = c; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void | void | ||||||
|  | @ -1475,11 +1475,20 @@ tag(const Arg *arg) { | ||||||
| void | void | ||||||
| tagmon(const Arg *arg) { | tagmon(const Arg *arg) { | ||||||
| 	unsigned int i; | 	unsigned int i; | ||||||
|  | 	Client *c; | ||||||
| 	Monitor *m; | 	Monitor *m; | ||||||
| 
 | 
 | ||||||
|  | 	if(!(c = selmon->sel)) | ||||||
|  | 		return; | ||||||
| 	for(i = 0, m = mons; m; m = m->next, i++) | 	for(i = 0, m = mons; m; m = m->next, i++) | ||||||
| 		if(i == arg->ui) { | 		if(i == arg->ui) { | ||||||
| 			selmon->sel->m = m; | 			detach(c); | ||||||
|  | 			detachstack(c); | ||||||
|  | 			c->mon = m; | ||||||
|  | 			attach(c); | ||||||
|  | 			attachstack(c); | ||||||
|  | 			selmon->sel = selmon->stack; | ||||||
|  | 			m->sel = c; | ||||||
| 			arrange(); | 			arrange(); | ||||||
| 			break; | 			break; | ||||||
| 		} | 		} | ||||||
|  | @ -1695,7 +1704,7 @@ updategeom(void) { | ||||||
| 		for(tm = mons; tm; tm = tm->next) | 		for(tm = mons; tm; tm = tm->next) | ||||||
| 			if(tm->screen_number == m->screen_number) { | 			if(tm->screen_number == m->screen_number) { | ||||||
| 				m->clients = tm->clients; | 				m->clients = tm->clients; | ||||||
| 				m->stack = tm->stack; | 				m->sel = m->stack = tm->stack; | ||||||
| 				tm->clients = NULL; | 				tm->clients = NULL; | ||||||
| 				tm->stack = NULL; | 				tm->stack = NULL; | ||||||
| 				for(c = m->clients; c; c = c->next) | 				for(c = m->clients; c; c = c->next) | ||||||
|  | @ -1715,7 +1724,7 @@ updategeom(void) { | ||||||
| 		while(tm->stack) { | 		while(tm->stack) { | ||||||
| 			c = tm->stack->snext; | 			c = tm->stack->snext; | ||||||
| 			tm->stack->snext = newmons->stack; | 			tm->stack->snext = newmons->stack; | ||||||
| 			newmons->stack = tm->stack; | 			newmons->sel = newmons->stack = tm->stack; | ||||||
| 			tm->stack = c; | 			tm->stack = c; | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue