|  | @@ -297,7 +297,7 @@ applyrules(Client *c) {
 | 
	
		
			
				|  |  |  	if(ch.res_name)
 | 
	
		
			
				|  |  |  		XFree(ch.res_name);
 | 
	
		
			
				|  |  |  	if(!matched_tag)
 | 
	
		
			
				|  |  | -		memcpy(c->tags, monitors[monitorat(-1, -1)].seltags, sizeof seltags);
 | 
	
		
			
				|  |  | +		memcpy(c->tags, monitors[monitorat(-1, -1)].seltags, sizeof initags);
 | 
	
		
			
				|  |  |  	if (!matched_monitor)
 | 
	
		
			
				|  |  |  		c->monitor = monitorat(-1, -1);
 | 
	
		
			
				|  |  |  }
 | 
	
	
		
			
				|  | @@ -1056,7 +1056,7 @@ manage(Window w, XWindowAttributes *wa) {
 | 
	
		
			
				|  |  |  	XWindowChanges wc;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	c = emallocz(sizeof(Client));
 | 
	
		
			
				|  |  | -	c->tags = emallocz(sizeof seltags);
 | 
	
		
			
				|  |  | +	c->tags = emallocz(sizeof initags);
 | 
	
		
			
				|  |  |  	c->win = w;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	applyrules(c);
 | 
	
	
		
			
				|  | @@ -1100,7 +1100,7 @@ manage(Window w, XWindowAttributes *wa) {
 | 
	
		
			
				|  |  |  	if((rettrans = XGetTransientForHint(dpy, w, &trans) == Success))
 | 
	
		
			
				|  |  |  		for(t = clients; t && t->win != trans; t = t->next);
 | 
	
		
			
				|  |  |  	if(t)
 | 
	
		
			
				|  |  | -		memcpy(c->tags, t->tags, sizeof seltags);
 | 
	
		
			
				|  |  | +		memcpy(c->tags, t->tags, sizeof initags);
 | 
	
		
			
				|  |  |  	if(!c->isfloating)
 | 
	
		
			
				|  |  |  		c->isfloating = (rettrans == Success) || c->isfixed;
 | 
	
		
			
				|  |  |  	attach(c);
 | 
	
	
		
			
				|  | @@ -1181,7 +1181,7 @@ movemouse(Client *c) {
 | 
	
		
			
				|  |  |  			else if(abs((m->way + m->wah) - (ny + c->h + 2 * c->border)) < SNAP)
 | 
	
		
			
				|  |  |  				ny = m->way + m->wah - c->h - 2 * c->border;
 | 
	
		
			
				|  |  |  			resize(c, nx, ny, c->w, c->h, False);
 | 
	
		
			
				|  |  | -			memcpy(c->tags, monitors[monitorat(nx, ny)].seltags, sizeof seltags);
 | 
	
		
			
				|  |  | +			memcpy(c->tags, monitors[monitorat(nx, ny)].seltags, sizeof initags);
 | 
	
		
			
				|  |  |  			break;
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  	}
 | 
	
	
		
			
				|  | @@ -1591,11 +1591,11 @@ setup(void) {
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		monitors[i].id = i;
 | 
	
		
			
				|  |  | -		monitors[i].seltags = emallocz(LENGTH(tags)*sizeof(char*));
 | 
	
		
			
				|  |  | -		monitors[i].prevtags = emallocz(LENGTH(tags)*sizeof(char*));
 | 
	
		
			
				|  |  | +		monitors[i].seltags = emallocz(sizeof initags);
 | 
	
		
			
				|  |  | +		monitors[i].prevtags = emallocz(sizeof initags);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		memcpy(monitors[i].seltags, seltags, sizeof seltags);
 | 
	
		
			
				|  |  | -		memcpy(monitors[i].prevtags, seltags, sizeof seltags);
 | 
	
		
			
				|  |  | +		memcpy(monitors[i].seltags, initags, sizeof initags);
 | 
	
		
			
				|  |  | +		memcpy(monitors[i].prevtags, initags, sizeof initags);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		/* init appearance */
 | 
	
		
			
				|  |  |  		monitors[i].dc.norm[ColBorder] = getcolor(NORMBORDERCOLOR);
 | 
	
	
		
			
				|  | @@ -1950,7 +1950,7 @@ view(const char *arg) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	Monitor *m = &monitors[monitorat(-1, -1)];
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	memcpy(m->prevtags, seltags, sizeof seltags);
 | 
	
		
			
				|  |  | +	memcpy(m->prevtags, m->seltags, sizeof initags);
 | 
	
		
			
				|  |  |  	for(i = 0; i < LENGTH(tags); i++)
 | 
	
		
			
				|  |  |  		m->seltags[i] = (NULL == arg);
 | 
	
		
			
				|  |  |  	m->seltags[idxoftag(arg)] = True;
 | 
	
	
		
			
				|  | @@ -1963,9 +1963,9 @@ viewprevtag(const char *arg) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	Monitor *m = &monitors[monitorat(-1, -1)];
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	memcpy(tmp, m->seltags, sizeof seltags);
 | 
	
		
			
				|  |  | -	memcpy(m->seltags, m->prevtags, sizeof seltags);
 | 
	
		
			
				|  |  | -	memcpy(m->prevtags, tmp, sizeof seltags);
 | 
	
		
			
				|  |  | +	memcpy(tmp, m->seltags, sizeof initags);
 | 
	
		
			
				|  |  | +	memcpy(m->seltags, m->prevtags, sizeof initags);
 | 
	
		
			
				|  |  | +	memcpy(m->prevtags, tmp, sizeof initags);
 | 
	
		
			
				|  |  |  	arrange();
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -2011,7 +2011,7 @@ movetomonitor(const char *arg) {
 | 
	
		
			
				|  |  |  	if (sel) {
 | 
	
		
			
				|  |  |  		sel->monitor = arg ? atoi(arg) : (sel->monitor+1) % mcount;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		memcpy(sel->tags, monitors[sel->monitor].seltags, sizeof seltags);
 | 
	
		
			
				|  |  | +		memcpy(sel->tags, monitors[sel->monitor].seltags, sizeof initags);
 | 
	
		
			
				|  |  |  		resize(sel, monitors[sel->monitor].wax, monitors[sel->monitor].way, sel->w, sel->h, True);
 | 
	
		
			
				|  |  |  		arrange();
 | 
	
		
			
				|  |  |  	}
 |