43 lines
		
	
	
		
			873 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			873 B
		
	
	
	
		
			C
		
	
	
	
	
	
| void
 | |
| focusmaster(const Arg *arg)
 | |
| {
 | |
| 	Client *master;
 | |
| 	Monitor *m = selmon;
 | |
| 	#if FOCUSMASTER_RETURN_PATCH
 | |
| 	int i;
 | |
| 	#endif // FOCUSMASTER_RETURN_PATCH
 | |
| 
 | |
| 	if (m->nmaster < 1)
 | |
| 		return;
 | |
| 	#if !FAKEFULLSCREEN_PATCH
 | |
| 	#if FAKEFULLSCREEN_CLIENT_PATCH
 | |
| 	if (!m->sel || (m->sel->isfullscreen && m->sel->fakefullscreen != 1 && lockfullscreen))
 | |
| 		return;
 | |
| 	#else
 | |
| 	if (!m->sel || (m->sel->isfullscreen && lockfullscreen))
 | |
| 		return;
 | |
| 	#endif // FAKEFULLSCREEN_CLIENT_PATCH
 | |
| 	#endif // FAKEFULLSCREEN_PATCH
 | |
| 
 | |
| 	master = nexttiled(m->clients);
 | |
| 
 | |
| 	if (!master)
 | |
| 		return;
 | |
| 
 | |
| 	#if FOCUSMASTER_RETURN_PATCH
 | |
| 	for (i = 0; !(m->tagset[m->seltags] & 1 << i); i++);
 | |
| 	i++;
 | |
| 
 | |
| 	if (m->sel == master) {
 | |
| 		if (m->tagmarked[i] && ISVISIBLE(m->tagmarked[i]))
 | |
| 			focus(m->tagmarked[i]);
 | |
| 	} else {
 | |
| 		m->tagmarked[i] = m->sel;
 | |
| 		focus(master);
 | |
| 	}
 | |
| 	#else
 | |
| 	focus(master);
 | |
| 	#endif // FOCUSMASTER_RETURN_PATCH
 | |
| 	restack(m);
 | |
| }
 |