From 19da197f58bc005ad379d751f28f0a17cea3d3b8 Mon Sep 17 00:00:00 2001 From: "Anselm R.Garbe" Date: Mon, 14 Aug 2006 16:59:18 +0200 Subject: changed replacetag into toggletag --- config.arg.h | 12 +++++------ config.default.h | 20 ++++++++--------- dwm.h | 6 +++--- tag.c | 65 +++++++++++++++++++++++++++++++------------------------- 4 files changed, 55 insertions(+), 48 deletions(-) diff --git a/config.arg.h b/config.arg.h index 17215fb..a2257cf 100644 --- a/config.arg.h +++ b/config.arg.h @@ -33,17 +33,17 @@ static Key key[] = { \ { MODKEY|ControlMask, XK_1, toggleview, { .i = 0 } }, \ { MODKEY|ControlMask, XK_2, toggleview, { .i = 1 } }, \ { MODKEY|ControlMask, XK_3, toggleview, { .i = 2 } }, \ - { MODKEY|ShiftMask, XK_1, replacetag, { .i = 0 } }, \ - { MODKEY|ShiftMask, XK_2, replacetag, { .i = 1 } }, \ - { MODKEY|ShiftMask, XK_3, replacetag, { .i = 2 } }, \ + { MODKEY|ShiftMask, XK_1, tag, { .i = 0 } }, \ + { MODKEY|ShiftMask, XK_2, tag, { .i = 1 } }, \ + { MODKEY|ShiftMask, XK_3, tag, { .i = 2 } }, \ { MODKEY|ShiftMask, XK_c, killclient, { 0 } }, \ { MODKEY|ShiftMask, XK_q, quit, { 0 } }, \ { MODKEY|ShiftMask, XK_Return, spawn, \ { .cmd = "exec urxvt +sb -tr -bg black -fg '#eeeeee' -cr '#eeeeee' +sb " \ "-fn '-*-terminus-medium-*-*-*-12-*-*-*-*-*-iso10646-*'" } }, \ - { MODKEY|ControlMask|ShiftMask, XK_1, appendtag, { .i = 0 } }, \ - { MODKEY|ControlMask|ShiftMask, XK_2, appendtag, { .i = 1 } }, \ - { MODKEY|ControlMask|ShiftMask, XK_3, appendtag, { .i = 2 } }, \ + { MODKEY|ControlMask|ShiftMask, XK_1, toggletag, { .i = 0 } }, \ + { MODKEY|ControlMask|ShiftMask, XK_2, toggletag, { .i = 1 } }, \ + { MODKEY|ControlMask|ShiftMask, XK_3, toggletag, { .i = 2 } }, \ }; #define RULES \ diff --git a/config.default.h b/config.default.h index 6a6fb4d..a8a2c0e 100644 --- a/config.default.h +++ b/config.default.h @@ -34,19 +34,19 @@ static Key key[] = { \ { MODKEY|ControlMask, XK_2, toggleview, { .i = 2 } }, \ { MODKEY|ControlMask, XK_3, toggleview, { .i = 3 } }, \ { MODKEY|ControlMask, XK_4, toggleview, { .i = 4 } }, \ - { MODKEY|ShiftMask, XK_0, replacetag, { .i = 0 } }, \ - { MODKEY|ShiftMask, XK_1, replacetag, { .i = 1 } }, \ - { MODKEY|ShiftMask, XK_2, replacetag, { .i = 2 } }, \ - { MODKEY|ShiftMask, XK_3, replacetag, { .i = 3 } }, \ - { MODKEY|ShiftMask, XK_4, replacetag, { .i = 4 } }, \ + { MODKEY|ShiftMask, XK_0, tag, { .i = 0 } }, \ + { MODKEY|ShiftMask, XK_1, tag, { .i = 1 } }, \ + { MODKEY|ShiftMask, XK_2, tag, { .i = 2 } }, \ + { MODKEY|ShiftMask, XK_3, tag, { .i = 3 } }, \ + { MODKEY|ShiftMask, XK_4, tag, { .i = 4 } }, \ { MODKEY|ShiftMask, XK_c, killclient, { 0 } }, \ { MODKEY|ShiftMask, XK_q, quit, { 0 } }, \ { MODKEY|ShiftMask, XK_Return, spawn, { .cmd = "exec xterm" } }, \ - { MODKEY|ControlMask|ShiftMask, XK_0, appendtag, { .i = 0 } }, \ - { MODKEY|ControlMask|ShiftMask, XK_1, appendtag, { .i = 1 } }, \ - { MODKEY|ControlMask|ShiftMask, XK_2, appendtag, { .i = 2 } }, \ - { MODKEY|ControlMask|ShiftMask, XK_3, appendtag, { .i = 3 } }, \ - { MODKEY|ControlMask|ShiftMask, XK_4, appendtag, { .i = 4 } }, \ + { MODKEY|ControlMask|ShiftMask, XK_0, toggletag, { .i = 0 } }, \ + { MODKEY|ControlMask|ShiftMask, XK_1, toggletag, { .i = 1 } }, \ + { MODKEY|ControlMask|ShiftMask, XK_2, toggletag, { .i = 2 } }, \ + { MODKEY|ControlMask|ShiftMask, XK_3, toggletag, { .i = 3 } }, \ + { MODKEY|ControlMask|ShiftMask, XK_4, toggletag, { .i = 4 } }, \ }; #define RULES \ diff --git a/dwm.h b/dwm.h index c13179f..10eaf30 100644 --- a/dwm.h +++ b/dwm.h @@ -116,19 +116,19 @@ extern void sendevent(Window w, Atom a, long value); extern int xerror(Display *dsply, XErrorEvent *ee); /* tag.c */ -extern void appendtag(Arg *arg); extern void dofloat(Arg *arg); extern void dotile(Arg *arg); extern void initrregs(); extern Bool isvisible(Client *c); extern Client *getnext(Client *c); extern Client *getprev(Client *c); -extern void replacetag(Arg *arg); extern void restack(); extern void settags(Client *c); +extern void tag(Arg *arg); extern void togglemode(Arg *arg); -extern void view(Arg *arg); +extern void toggletag(Arg *arg); extern void toggleview(Arg *arg); +extern void view(Arg *arg); /* util.c */ extern void *emallocz(unsigned int size); diff --git a/tag.c b/tag.c index edf68c6..51407e3 100644 --- a/tag.c +++ b/tag.c @@ -34,16 +34,6 @@ void (*arrange)(Arg *) = DEFMODE; /* extern */ -void -appendtag(Arg *arg) -{ - if(!sel) - return; - - sel->tags[arg->i] = True; - settitle(sel); -} - void dofloat(Arg *arg) { @@ -182,19 +172,6 @@ isvisible(Client *c) return False; } -void -replacetag(Arg *arg) -{ - int i; - - if(!sel) - return; - - for(i = 0; i < ntags; i++) - sel->tags[i] = False; - appendtag(arg); -} - void restack() { @@ -280,6 +257,20 @@ settags(Client *c) c->tags[i] = seltag[i]; } +void +tag(Arg *arg) +{ + unsigned int i; + + if(!sel) + return; + + for(i = 0; i < ntags; i++) + sel->tags[i] = False; + sel->tags[arg->i] = True; + settitle(sel); +} + void togglemode(Arg *arg) { @@ -288,24 +279,40 @@ togglemode(Arg *arg) } void -view(Arg *arg) +toggletag(Arg *arg) { unsigned int i; - for(i = 0; i < ntags; i++) - seltag[i] = False; - seltag[arg->i] = True; - arrange(NULL); + if(!sel) + return; + + sel->tags[arg->i] = !sel->tags[arg->i]; + for(i = 0; i < ntags && !sel->tags[i]; i++); + if(i == ntags) + sel->tags[arg->i] = True; + settitle(sel); } + void toggleview(Arg *arg) { unsigned int i; seltag[arg->i] = !seltag[arg->i]; - for(i = 0; !seltag[i] && i < ntags; i++); + for(i = 0; i < ntags && !seltag[i]; i++); if(i == ntags) seltag[arg->i] = True; /* cannot toggle last view */ arrange(NULL); } + +void +view(Arg *arg) +{ + unsigned int i; + + for(i = 0; i < ntags; i++) + seltag[i] = False; + seltag[arg->i] = True; + arrange(NULL); +} -- cgit v1.2.3-13-gbd6f