mirror of
https://github.com/bakkeby/dwm-flexipatch
synced 2024-11-10 19:10:48 +00:00
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);
|
|
}
|