X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=dwm.c;h=53f0c12a0bfc0521c8032f9286ad4ae10ab83323;hb=48d0c56eacd59da50b1ed592836ae16fae9aa4cc;hp=5138752940ffd9b7473d35d12eff6eb8a0e36c2b;hpb=c3fa9e879f5beb5d3c37f4bbcae2306942929f13;p=dwm.git diff --git a/dwm.c b/dwm.c index 5138752..53f0c12 100644 --- a/dwm.c +++ b/dwm.c @@ -61,6 +61,7 @@ enum { WMProtocols, WMDelete, WMName, WMState, WMLast };/* default atoms */ /* typedefs */ typedef unsigned int uint; +typedef unsigned long ulong; typedef struct Client Client; struct Client { char name[256]; @@ -68,7 +69,7 @@ struct Client { int basew, baseh, incw, inch, maxw, maxh, minw, minh; int minax, maxax, minay, maxay; long flags; - uint bw, oldbw; + int bw, oldbw; Bool isbanned, isfixed, isfloating, isurgent; uint tags; Client *next; @@ -79,8 +80,8 @@ struct Client { typedef struct { int x, y, w, h; - unsigned long norm[ColLast]; - unsigned long sel[ColLast]; + ulong norm[ColLast]; + ulong sel[ColLast]; Drawable drawable; GC gc; struct { @@ -93,7 +94,7 @@ typedef struct { } DC; /* draw context */ typedef struct { - unsigned long mod; + uint mod; KeySym keysym; void (*func)(const void *arg); const void *arg; @@ -129,8 +130,8 @@ void destroynotify(XEvent *e); void detach(Client *c); void detachstack(Client *c); void drawbar(void); -void drawsquare(Bool filled, Bool empty, Bool invert, unsigned long col[ColLast]); -void drawtext(const char *text, unsigned long col[ColLast], Bool invert); +void drawsquare(Bool filled, Bool empty, Bool invert, ulong col[ColLast]); +void drawtext(const char *text, ulong col[ColLast], Bool invert); void *emallocz(uint size); void enternotify(XEvent *e); void eprint(const char *errstr, ...); @@ -140,7 +141,7 @@ void focusin(XEvent *e); void focusnext(const void *arg); void focusprev(const void *arg); Client *getclient(Window w); -unsigned long getcolor(const char *colstr); +ulong getcolor(const char *colstr); long getstate(Window w); Bool gettextprop(Window w, Atom atom, char *text, uint size); void grabbuttons(Client *c, Bool focused); @@ -156,7 +157,7 @@ void manage(Window w, XWindowAttributes *wa); void mappingnotify(XEvent *e); void maprequest(XEvent *e); void movemouse(Client *c); -Client *nextunfloating(Client *c); +Client *nexttiled(Client *c); void propertynotify(XEvent *e); void quit(const void *arg); void resize(Client *c, int x, int y, int w, int h, Bool sizehints); @@ -539,7 +540,7 @@ drawbar(void) { } void -drawsquare(Bool filled, Bool empty, Bool invert, unsigned long col[ColLast]) { +drawsquare(Bool filled, Bool empty, Bool invert, ulong col[ColLast]) { int x; XGCValues gcv; XRectangle r = { dc.x, dc.y, dc.w, dc.h }; @@ -560,7 +561,7 @@ drawsquare(Bool filled, Bool empty, Bool invert, unsigned long col[ColLast]) { } void -drawtext(const char *text, unsigned long col[ColLast], Bool invert) { +drawtext(const char *text, ulong col[ColLast], Bool invert) { int x, y, w, h; uint len, olen; XRectangle r = { dc.x, dc.y, dc.w, dc.h }; @@ -707,7 +708,7 @@ getclient(Window w) { return c; } -unsigned long +ulong getcolor(const char *colstr) { Colormap cmap = DefaultColormap(dpy, screen); XColor color; @@ -722,7 +723,7 @@ getstate(Window w) { int format, status; long result = -1; unsigned char *p = NULL; - unsigned long n, extra; + ulong n, extra; Atom real; status = XGetWindowProperty(dpy, w, wmatom[WMState], 0L, 2L, False, wmatom[WMState], @@ -1051,7 +1052,7 @@ movemouse(Client *c) { } Client * -nextunfloating(Client *c) { +nexttiled(Client *c) { for(; c && (c->isfloating || !isvisible(c)); c = c->next); return c; } @@ -1464,12 +1465,12 @@ tile(void) { uint i, n; Client *c; - for(n = 0, c = nextunfloating(clients); c; c = nextunfloating(c->next), n++); + for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next), n++); if(n == 0) return; /* master */ - c = nextunfloating(clients); + c = nexttiled(clients); if(n == 1) tileresize(c, wx, wy, ww - 2 * c->bw, wh - 2 * c->bw); @@ -1487,7 +1488,7 @@ tile(void) { if(h < bh) h = th; - for(i = 0, c = nextunfloating(c->next); c; c = nextunfloating(c->next), i++) { + for(i = 0, c = nexttiled(c->next); c; c = nexttiled(c->next), i++) { if(i + 1 == n) /* remainder */ tileresize(c, x, y, w - 2 * c->bw, (ty + th) - y - 2 * c->bw); else @@ -1789,14 +1790,14 @@ void zoom(const void *arg) { Client *c = sel; - if(c == nextunfloating(clients)) - if(!c || !(c = nextunfloating(c->next))) + if(!lt->arrange || sel->isfloating) + return; + if(c == nexttiled(clients)) + if(!c || !(c = nexttiled(c->next))) return; - if(lt->arrange == tile && !sel->isfloating) { - detach(c); - attach(c); - focus(c); - } + detach(c); + attach(c); + focus(c); arrange(); }