dwm-push_no_master-6.1.diff - sites - public wiki contents of suckless.org | |
git clone git://git.suckless.org/sites | |
Log | |
Files | |
Refs | |
--- | |
dwm-push_no_master-6.1.diff (1557B) | |
--- | |
1 diff --git a/dwm.c b/dwm.c | |
2 index 0362114..d61d736 100644 | |
3 --- a/dwm.c | |
4 +++ b/dwm.c | |
5 @@ -186,7 +186,10 @@ static void motionnotify(XEvent *e); | |
6 static void movemouse(const Arg *arg); | |
7 static Client *nexttiled(Client *c); | |
8 static void pop(Client *); | |
9 +static Client *prevtiled(Client *c); | |
10 static void propertynotify(XEvent *e); | |
11 +static void pushdown(const Arg *arg); | |
12 +static void pushup(const Arg *arg); | |
13 static void quit(const Arg *arg); | |
14 static Monitor *recttomon(int x, int y, int w, int h); | |
15 static void resize(Client *c, int x, int y, int w, int h, int interact); | |
16 @@ -1225,6 +1228,16 @@ pop(Client *c) | |
17 arrange(c->mon); | |
18 } | |
19 | |
20 +Client * | |
21 +prevtiled(Client *c) { | |
22 + Client *p, *r; | |
23 + | |
24 + for(p = selmon->clients, r = NULL; p && p != c; p = p->next) | |
25 + if(!p->isfloating && ISVISIBLE(p)) | |
26 + r = p; | |
27 + return r; | |
28 +} | |
29 + | |
30 void | |
31 propertynotify(XEvent *e) | |
32 { | |
33 @@ -1263,6 +1276,37 @@ propertynotify(XEvent *e) | |
34 } | |
35 | |
36 void | |
37 +pushdown(const Arg *arg) { | |
38 + Client *sel = selmon->sel, *c; | |
39 + | |
40 + if(!sel || sel->isfloating || sel == nexttiled(selmon->clients)) | |
41 + return; | |
42 + if((c = nexttiled(sel->next))) { | |
43 + detach(sel); | |
44 + sel->next = c->next; | |
45 + c->next = sel; | |
46 + } | |
47 + focus(sel); | |
48 + arrange(selmon); | |
49 +} | |
50 + | |
51 +void | |
52 +pushup(const Arg *arg) { | |
53 + Client *sel = selmon->sel, *c; | |
54 + | |
55 + if(!sel || sel->isfloating) | |
56 + return; | |
57 + if((c = prevtiled(sel)) && c != nexttiled(selmon->clients)) { | |
58 + detach(sel); | |
59 + sel->next = c; | |
60 + for(c = selmon->clients; c->next != sel->next; c = c->n… | |
61 + c->next = sel; | |
62 + } | |
63 + focus(sel); | |
64 + arrange(selmon); | |
65 +} | |
66 + | |
67 +void | |
68 quit(const Arg *arg) | |
69 { | |
70 running = 0; |