|
@ -556,8 +556,8 @@ clientmessage(XEvent *e) { |
|
|
} |
|
|
} |
|
|
else if(cme->message_type == netatom[NetActiveWindow]) { |
|
|
else if(cme->message_type == netatom[NetActiveWindow]) { |
|
|
if(!ISVISIBLE(c)) { |
|
|
if(!ISVISIBLE(c)) { |
|
|
c->mon->seltags ^= 1; |
|
|
|
|
|
c->mon->tagset[c->mon->seltags] = c->tags; |
|
|
|
|
|
|
|
|
c->mon->seltags ^= 1; |
|
|
|
|
|
c->mon->tagset[c->mon->seltags] = c->tags; |
|
|
} |
|
|
} |
|
|
pop(c); |
|
|
pop(c); |
|
|
} |
|
|
} |
|
@ -1213,7 +1213,7 @@ movemouse(const Arg *arg) { |
|
|
return; |
|
|
return; |
|
|
do { |
|
|
do { |
|
|
XMaskEvent(dpy, MOUSEMASK|ExposureMask|SubstructureRedirectMask, &ev); |
|
|
XMaskEvent(dpy, MOUSEMASK|ExposureMask|SubstructureRedirectMask, &ev); |
|
|
switch (ev.type) { |
|
|
|
|
|
|
|
|
switch(ev.type) { |
|
|
case ConfigureRequest: |
|
|
case ConfigureRequest: |
|
|
case Expose: |
|
|
case Expose: |
|
|
case MapRequest: |
|
|
case MapRequest: |
|
@ -1274,7 +1274,7 @@ propertynotify(XEvent *e) { |
|
|
else if(ev->state == PropertyDelete) |
|
|
else if(ev->state == PropertyDelete) |
|
|
return; /* ignore */ |
|
|
return; /* ignore */ |
|
|
else if((c = wintoclient(ev->window))) { |
|
|
else if((c = wintoclient(ev->window))) { |
|
|
switch (ev->atom) { |
|
|
|
|
|
|
|
|
switch(ev->atom) { |
|
|
default: break; |
|
|
default: break; |
|
|
case XA_WM_TRANSIENT_FOR: |
|
|
case XA_WM_TRANSIENT_FOR: |
|
|
if(!c->isfloating && (XGetTransientForHint(dpy, c->win, &trans)) && |
|
|
if(!c->isfloating && (XGetTransientForHint(dpy, c->win, &trans)) && |
|
@ -1542,8 +1542,8 @@ setup(void) { |
|
|
wmatom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False); |
|
|
wmatom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False); |
|
|
wmatom[WMDelete] = XInternAtom(dpy, "WM_DELETE_WINDOW", False); |
|
|
wmatom[WMDelete] = XInternAtom(dpy, "WM_DELETE_WINDOW", False); |
|
|
wmatom[WMState] = XInternAtom(dpy, "WM_STATE", False); |
|
|
wmatom[WMState] = XInternAtom(dpy, "WM_STATE", False); |
|
|
netatom[NetActiveWindow] = XInternAtom(dpy, "_NET_ACTIVE_WINDOW", False); |
|
|
|
|
|
wmatom[WMTakeFocus] = XInternAtom(dpy, "WM_TAKE_FOCUS", False); |
|
|
wmatom[WMTakeFocus] = XInternAtom(dpy, "WM_TAKE_FOCUS", False); |
|
|
|
|
|
netatom[NetActiveWindow] = XInternAtom(dpy, "_NET_ACTIVE_WINDOW", False); |
|
|
netatom[NetSupported] = XInternAtom(dpy, "_NET_SUPPORTED", False); |
|
|
netatom[NetSupported] = XInternAtom(dpy, "_NET_SUPPORTED", False); |
|
|
netatom[NetWMName] = XInternAtom(dpy, "_NET_WM_NAME", False); |
|
|
netatom[NetWMName] = XInternAtom(dpy, "_NET_WM_NAME", False); |
|
|
netatom[NetWMState] = XInternAtom(dpy, "_NET_WM_STATE", False); |
|
|
netatom[NetWMState] = XInternAtom(dpy, "_NET_WM_STATE", False); |
|
@ -1612,7 +1612,7 @@ spawn(const Arg *arg) { |
|
|
execvp(((char **)arg->v)[0], (char **)arg->v); |
|
|
execvp(((char **)arg->v)[0], (char **)arg->v); |
|
|
fprintf(stderr, "dwm: execvp %s", ((char **)arg->v)[0]); |
|
|
fprintf(stderr, "dwm: execvp %s", ((char **)arg->v)[0]); |
|
|
perror(" failed"); |
|
|
perror(" failed"); |
|
|
exit(0); |
|
|
|
|
|
|
|
|
exit(EXIT_SUCCESS); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -1760,11 +1760,11 @@ unmapnotify(XEvent *e) { |
|
|
void |
|
|
void |
|
|
updatebars(void) { |
|
|
updatebars(void) { |
|
|
Monitor *m; |
|
|
Monitor *m; |
|
|
XSetWindowAttributes wa; |
|
|
|
|
|
|
|
|
|
|
|
wa.override_redirect = True; |
|
|
|
|
|
wa.background_pixmap = ParentRelative; |
|
|
|
|
|
wa.event_mask = ButtonPressMask|ExposureMask; |
|
|
|
|
|
|
|
|
XSetWindowAttributes wa = { |
|
|
|
|
|
.override_redirect = True, |
|
|
|
|
|
.background_pixmap = ParentRelative, |
|
|
|
|
|
.event_mask = ButtonPressMask|ExposureMask |
|
|
|
|
|
}; |
|
|
for(m = mons; m; m = m->next) { |
|
|
for(m = mons; m; m = m->next) { |
|
|
m->barwin = XCreateWindow(dpy, root, m->wx, m->by, m->ww, bh, 0, DefaultDepth(dpy, screen), |
|
|
m->barwin = XCreateWindow(dpy, root, m->wx, m->by, m->ww, bh, 0, DefaultDepth(dpy, screen), |
|
|
CopyFromParent, DefaultVisual(dpy, screen), |
|
|
CopyFromParent, DefaultVisual(dpy, screen), |
|
@ -2069,5 +2069,5 @@ main(int argc, char *argv[]) { |
|
|
run(); |
|
|
run(); |
|
|
cleanup(); |
|
|
cleanup(); |
|
|
XCloseDisplay(dpy); |
|
|
XCloseDisplay(dpy); |
|
|
return 0; |
|
|
|
|
|
|
|
|
return EXIT_SUCCESS; |
|
|
} |
|
|
} |