JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
using eprint instead of fputs
[dwm.git] / screen.c
index e0da2cf..8abe3d7 100644 (file)
--- a/screen.c
+++ b/screen.c
@@ -19,7 +19,7 @@ Layout *lt = NULL;
 typedef struct {
        const char *prop;
        const char *tags;
-       Bool versatile;
+       Bool isversatile;
 } Rule;
 
 typedef struct {
@@ -52,7 +52,7 @@ tile(void) {
                        if(c->isbanned)
                                XMoveWindow(dpy, c->win, c->x, c->y);
                        c->isbanned = False;
-                       if(c->versatile)
+                       if(c->isversatile)
                                continue;
                        c->ismax = False;
                        nx = wax;
@@ -175,10 +175,10 @@ restack(void) {
        drawstatus();
        if(!sel)
                return;
-       if(sel->versatile || lt->arrange == versatile)
+       if(sel->isversatile || lt->arrange == versatile)
                XRaiseWindow(dpy, sel->win);
        if(lt->arrange != versatile) {
-               if(!sel->versatile)
+               if(!sel->isversatile)
                        XLowerWindow(dpy, sel->win);
                for(c = nexttiled(clients); c; c = nexttiled(c->next)) {
                        if(c == sel)
@@ -191,6 +191,28 @@ restack(void) {
 }
 
 void
+setlayout(Arg *arg) {
+       unsigned int i;
+
+       if(arg->i == -1) {
+               for(i = 0; i < nlayouts && lt != &layout[i]; i++);
+               if(i == nlayouts - 1)
+                       lt = &layout[0];
+               else
+                       lt = &layout[++i];
+       }
+       else {
+               if(arg->i < 0 || arg->i >= nlayouts)
+                       return;
+               lt = &layout[arg->i];
+       }
+       if(sel)
+               lt->arrange();
+       else
+               drawstatus();
+}
+
+void
 settags(Client *c, Client *trans) {
        char prop[512];
        unsigned int i, j;
@@ -208,7 +230,7 @@ settags(Client *c, Client *trans) {
                                ch.res_name ? ch.res_name : "", c->name);
                for(i = 0; i < nrules; i++)
                        if(regs[i].propregex && !regexec(regs[i].propregex, prop, 1, &tmp, 0)) {
-                               c->versatile = rule[i].versatile;
+                               c->isversatile = rule[i].isversatile;
                                for(j = 0; regs[i].tagregex && j < ntags; j++) {
                                        if(!regexec(regs[i].tagregex, tags[j], 1, &tmp, 0)) {
                                                matched = True;
@@ -253,25 +275,10 @@ toggletag(Arg *arg) {
 }
 
 void
-togglelayout(Arg *arg) {
-       unsigned int i;
-
-       for(i = 0; i < nlayouts && lt != &layout[i]; i++);
-       if(i == nlayouts - 1)
-               lt = &layout[0];
-       else
-               lt = &layout[++i];
-       if(sel)
-               lt->arrange();
-       else
-               drawstatus();
-}
-
-void
 toggleversatile(Arg *arg) {
        if(!sel || lt->arrange == versatile)
                return;
-       sel->versatile = !sel->versatile;
+       sel->isversatile = !sel->isversatile;
        lt->arrange();
 }