48 lines
1.1 KiB
Diff
48 lines
1.1 KiB
Diff
|
diff -urp dwm-6.1/dwm.c dwm-6.1-patched/dwm.c
|
||
|
--- dwm-6.1/dwm.c 2015-11-09 06:39:37.000000000 +0800
|
||
|
+++ dwm-6.1-patched/dwm.c 2016-03-24 23:56:35.435047948 +0800
|
||
|
@@ -206,6 +206,7 @@ static void setup(void);
|
||
|
static void showhide(Client *c);
|
||
|
static void sigchld(int unused);
|
||
|
static void spawn(const Arg *arg);
|
||
|
+static void switchcol(const Arg *arg);
|
||
|
static void tag(const Arg *arg);
|
||
|
static void tagmon(const Arg *arg);
|
||
|
static void tile(Monitor *);
|
||
|
@@ -1645,6 +1646,35 @@ spawn(const Arg *arg)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
+void
|
||
|
+switchcol(const Arg *arg)
|
||
|
+{
|
||
|
+ Client *c, *t;
|
||
|
+ int col = 0;
|
||
|
+ int i;
|
||
|
+
|
||
|
+ if (!selmon->sel)
|
||
|
+ return;
|
||
|
+ for (i = 0, c = nexttiled(selmon->clients); c ;
|
||
|
+ c = nexttiled(c->next), i++) {
|
||
|
+ if (c == selmon->sel)
|
||
|
+ col = (i + 1) > selmon->nmaster;
|
||
|
+ }
|
||
|
+ if (i <= selmon->nmaster)
|
||
|
+ return;
|
||
|
+ for (c = selmon->stack; c; c = c->snext) {
|
||
|
+ if (!ISVISIBLE(c))
|
||
|
+ continue;
|
||
|
+ for (i = 0, t = nexttiled(selmon->clients); t && t != c;
|
||
|
+ t = nexttiled(t->next), i++);
|
||
|
+ if (t && (i + 1 > selmon->nmaster) != col) {
|
||
|
+ focus(c);
|
||
|
+ restack(selmon);
|
||
|
+ break;
|
||
|
+ }
|
||
|
+ }
|
||
|
+}
|
||
|
+
|
||
|
void
|
||
|
tag(const Arg *arg)
|
||
|
{
|