dwm/patches/dwm-switchcol-6.1.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)
{