diff options
| author | bakkeby <[email protected]> | 2019-09-15 00:22:24 +0200 |
|---|---|---|
| committer | bakkeby <[email protected]> | 2019-09-15 00:22:24 +0200 |
| commit | 713c4e619749e437970dee379d65417f9a1849b3 (patch) | |
| tree | ae80930ed2da7ddb8d0c94f54d8b19fa39b3cd72 /patch/push_no_master.c | |
| parent | 70012dbf2cb8eddddc4ec57ecba4508a9d9664a5 (diff) | |
| download | dwm-flexipatch-713c4e619749e437970dee379d65417f9a1849b3.tar.gz dwm-flexipatch-713c4e619749e437970dee379d65417f9a1849b3.zip | |
Adding push no master variant patch
Diffstat (limited to 'patch/push_no_master.c')
| -rw-r--r-- | patch/push_no_master.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/patch/push_no_master.c b/patch/push_no_master.c new file mode 100644 index 0000000..5ff9326 --- /dev/null +++ b/patch/push_no_master.c @@ -0,0 +1,43 @@ +Client * +prevt(Client *c) +{ + Client *p, *r; + + for (p = selmon->clients, r = NULL; p && p != c; p = p->next) + if (!p->isfloating && ISVISIBLE(p)) + r = p; + return r; +} + +void +pushup(const Arg *arg) +{ + Client *sel = selmon->sel, *c; + + if (!sel || sel->isfloating) + return; + if ((c = prevt(sel)) && c != nexttiled(selmon->clients)) { + detach(sel); + sel->next = c; + for (c = selmon->clients; c->next != sel->next; c = c->next); + c->next = sel; + } + focus(sel); + arrange(selmon); +} + +void +pushdown(const Arg *arg) +{ + Client *sel = selmon->sel, *c; + + if (!sel || sel->isfloating || sel == nexttiled(selmon->clients)) + return; + if ((c = nexttiled(sel->next))) { + detach(sel); + sel->next = c->next; + c->next = sel; + } + focus(sel); + arrange(selmon); +}
\ No newline at end of file |
