X-Git-Url: https://jasonwoof.com/gitweb/?p=dwm.git;a=blobdiff_plain;f=dwm.c;h=6299b63d6df661d02d3039e202bfad6d9aa428e8;hp=b86ba946d5cf3a90abe65b2a411b25154f0b7ea0;hb=489ac07e83f5dabd23d494630c7bb61690bb56e0;hpb=71681c21a594260604779b96f46d51c82af11a03 diff --git a/dwm.c b/dwm.c index b86ba94..6299b63 100644 --- a/dwm.c +++ b/dwm.c @@ -158,14 +158,12 @@ void movemouse(Client *c); Client *nexttiled(Client *c); void propertynotify(XEvent *e); void quit(const char *arg); -void reapply(const char *arg); void resize(Client *c, int x, int y, int w, int h, Bool sizehints); void resizemouse(Client *c); void restack(void); void run(void); void scan(void); void setclientstate(Client *c, long state); -void setlayout(const char *arg); void setmfact(const char *arg); void setup(void); void spawn(const char *arg); @@ -179,6 +177,7 @@ void tileresize(Client *c, int x, int y, int w, int h); void tilev(void); void tilevstack(unsigned int n); void togglefloating(const char *arg); +void togglelayout(const char *arg); void toggletag(const char *arg); void toggleview(const char *arg); void unban(Client *c); @@ -240,7 +239,7 @@ Window root, barwin; void applyrules(Client *c) { - unsigned int i, j; + unsigned int i; Bool matched = False; Rule *r; XClassHint ch = { 0 }; @@ -254,11 +253,7 @@ applyrules(Client *c) { && (!r->instance || (ch.res_name && strstr(ch.res_name, r->instance)))) { c->isfloating = r->isfloating; if(r->tag) { - if(r->tag[0] == '*' && r->tag[1] == 0) - for(j = 0; j < LENGTH(tags); i++) - c->tags[j] = True; - else - c->tags[idxoftag(r->tag)] = True; + c->tags[idxoftag(r->tag)] = True; matched = True; } } @@ -339,7 +334,7 @@ buttonpress(XEvent *e) { } } if((ev->x < x + blw) && ev->button == Button1) - setlayout(NULL); + togglelayout(NULL); } else if((c = getclient(ev->window))) { focus(c); @@ -1141,17 +1136,6 @@ quit(const char *arg) { } void -reapply(const char *arg) { - Client *c; - - for(c = clients; c; c = c->next) { - memset(c->tags, 0, TAGSZ); - applyrules(c); - } - arrange(); -} - -void resize(Client *c, int x, int y, int w, int h, Bool sizehints) { XWindowChanges wc; @@ -1380,28 +1364,6 @@ setclientstate(Client *c, long state) { } void -setlayout(const char *arg) { - unsigned int i; - - if(!arg) { - if(++lt == &layouts[LENGTH(layouts)]) - lt = &layouts[0]; - } - else { - for(i = 0; i < LENGTH(layouts); i++) - if(!strcmp(arg, layouts[i].symbol)) - break; - if(i == LENGTH(layouts)) - return; - lt = &layouts[i]; - } - if(sel) - arrange(); - else - drawbar(); -} - -void setmfact(const char *arg) { double d; @@ -1640,6 +1602,28 @@ togglefloating(const char *arg) { } void +togglelayout(const char *arg) { + unsigned int i; + + if(!arg) { + if(++lt == &layouts[LENGTH(layouts)]) + lt = &layouts[0]; + } + else { + for(i = 0; i < LENGTH(layouts); i++) + if(!strcmp(arg, layouts[i].symbol)) + break; + if(i == LENGTH(layouts)) + return; + lt = &layouts[i]; + } + if(sel) + arrange(); + else + drawbar(); +} + +void toggletag(const char *arg) { unsigned int i, j;