Kris YotamImport dwm historybc80b522 months agoHistory
74 lines · 1.2 KB · C
RawDownload
static Client *nextc(Client *c, float f){	if (!f)		return nexttiled(c); 	for (; c && !ISVISIBLE(c); c = c->next);	return c;} static Client *prevc(Client *c, float f){	Client *p, *r; 	for (p = selmon->clients, r = NULL; c && p && p != c; p = p->next)		if ((f || !p->isfloating) && ISVISIBLE(p))			r = p;	return r;} static voidpushup(const Arg *arg){	Client *sel = selmon->sel;	Client *c; 	if (!sel || (sel->isfloating && !arg->f))		return;	if ((c = prevc(sel, arg->f))) {		/* attach before c */		detach(sel);		sel->next = c;		if (selmon->clients == c)			selmon->clients = sel;		else {			for (c = selmon->clients; c->next != sel->next; c = c->next);			c->next = sel;		}	} else {		/* move to the end */		for (c = sel; c->next; c = c->next);		if (sel != c) {			detach(sel);			sel->next = NULL;			c->next = sel;		}	}	focus(sel);	arrange(selmon);} static voidpushdown(const Arg *arg){	Client *sel = selmon->sel;	Client *c; 	if (!sel || (sel->isfloating && !arg->f))		return;	if ((c = nextc(sel->next, arg->f))) {		/* attach after c */		detach(sel);		sel->next = c->next;		c->next = sel;	} else {		/* move to the front */		detach(sel);		attach(sel);	}	focus(sel);	arrange(selmon);}