# HG changeset patch # User Anselm R. Garbe # Date 1171906395 -3600 # Node ID a61fcdf7b4c1b78482858ca37d88b0812ca804a0 # Parent 9728e9e85f93257a95c69a58904d03993689bf7b replaced togglelayout with setlayout diff -r 9728e9e85f93 -r a61fcdf7b4c1 config.arg.h --- a/config.arg.h Mon Feb 19 18:19:43 2007 +0100 +++ b/config.arg.h Mon Feb 19 18:33:15 2007 +0100 @@ -63,7 +63,7 @@ { MODKEY|ControlMask|ShiftMask, XK_8, toggletag, { .i = 7 } }, \ { MODKEY|ControlMask|ShiftMask, XK_9, toggletag, { .i = 8 } }, \ { MODKEY|ShiftMask, XK_c, killclient, { 0 } }, \ - { MODKEY, XK_space, togglelayout, { 0 } }, \ + { MODKEY, XK_space, setlayout, { .i = -1 } }, \ { MODKEY|ShiftMask, XK_space, toggleversatile,{ 0 } }, \ { MODKEY, XK_0, view, { .i = -1 } }, \ { MODKEY, XK_1, view, { .i = 0 } }, \ diff -r 9728e9e85f93 -r a61fcdf7b4c1 config.default.h --- a/config.default.h Mon Feb 19 18:19:43 2007 +0100 +++ b/config.default.h Mon Feb 19 18:33:15 2007 +0100 @@ -58,8 +58,8 @@ { MODKEY|ControlMask|ShiftMask, XK_8, toggletag, { .i = 7 } }, \ { MODKEY|ControlMask|ShiftMask, XK_9, toggletag, { .i = 8 } }, \ { MODKEY|ShiftMask, XK_c, killclient, { 0 } }, \ - { MODKEY, XK_space, togglelayout, { 0 } }, \ - { MODKEY|ShiftMask, XK_space, toggleversatile { 0 } }, \ + { MODKEY, XK_space, setlayout, { .i = -1 } }, \ + { MODKEY|ShiftMask, XK_space, toggleversatile,{ 0 } }, \ { MODKEY, XK_0, view, { .i = -1 } }, \ { MODKEY, XK_1, view, { .i = 0 } }, \ { MODKEY, XK_2, view, { .i = 1 } }, \ @@ -86,7 +86,7 @@ * xprop | awk -F '"' '/^WM_CLASS/ { printf("%s:%s:",$4,$2) }; /^WM_NAME/ { printf("%s\n",$2) }' */ #define RULES \ static Rule rule[] = { \ - /* class:instance:title regex tags regex versatile */ \ + /* class:instance:title regex tags regex isversatile */ \ { "Gimp", NULL, True }, \ { "MPlayer", NULL, True }, \ { "Acroread", NULL, True }, \ diff -r 9728e9e85f93 -r a61fcdf7b4c1 dwm.h --- a/dwm.h Mon Feb 19 18:19:43 2007 +0100 +++ b/dwm.h Mon Feb 19 18:33:15 2007 +0100 @@ -134,10 +134,10 @@ extern Bool isvisible(Client *c); /* returns True if client is visible */ extern void resizemaster(Arg *arg); /* resizes the master percent with arg's index value */ extern void restack(void); /* restores z layers of all clients */ +extern void setlayout(Arg *arg); /* sets layout, -1 toggles */ extern void settags(Client *c, Client *trans); /* sets tags of c */ extern void tag(Arg *arg); /* tags c with arg's index */ extern void toggleversatile(Arg *arg); /* toggles focusesd client between versatile/and non-versatile state */ -extern void togglelayout(Arg *arg); /* toggles layout */ extern void toggletag(Arg *arg); /* toggles c tags with arg's index */ extern void toggleview(Arg *arg); /* toggles the tag with arg's index (in)visible */ extern void versatile(void); /* arranges all windows versatile */ diff -r 9728e9e85f93 -r a61fcdf7b4c1 event.c --- a/event.c Mon Feb 19 18:19:43 2007 +0100 +++ b/event.c Mon Feb 19 18:33:15 2007 +0100 @@ -140,7 +140,8 @@ if(ev->x < x + blw) switch(ev->button) { case Button1: - togglelayout(NULL); + a.i = -1; + setlayout(&a); break; case Button4: a.i = 1; diff -r 9728e9e85f93 -r a61fcdf7b4c1 screen.c --- a/screen.c Mon Feb 19 18:19:43 2007 +0100 +++ b/screen.c Mon Feb 19 18:33:15 2007 +0100 @@ -191,6 +191,28 @@ } 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; @@ -253,21 +275,6 @@ } 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;