X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;ds=sidebyside;f=event.c;h=c3169aa7001c3434f214028d6371c38985f048c4;hb=92e55c7c53cb808b584982ac8f6d69112d713fab;hp=69a628eb7e48dcbe3e1d841381d59eef5a3b2cb9;hpb=b098c94ed44495957de11a6160fa0560abbe944f;p=dwm.git diff --git a/event.c b/event.c index 69a628e..c3169aa 100644 --- a/event.c +++ b/event.c @@ -145,6 +145,18 @@ buttonpress(XEvent *e) } } +static void +clientmessage(XEvent *e) +{ + Client *c; + XClientMessageEvent *ev = &e->xclient; + + if(ev->message_type == netatom[NetActiveWindow]) { + if((c = getclient(ev->window)) && c->tags[tsel]) + focus(c); + } +} + static void configurerequest(XEvent *e) { @@ -339,6 +351,7 @@ unmapnotify(XEvent *e) void (*handler[LASTEvent]) (XEvent *) = { [ButtonPress] = buttonpress, + [ClientMessage] = clientmessage, [ConfigureRequest] = configurerequest, [DestroyNotify] = destroynotify, [EnterNotify] = enternotify, @@ -359,20 +372,12 @@ grabkeys() for(i = 0; i < len; i++) { code = XKeysymToKeycode(dpy, key[i].keysym); - /* normal */ - XUngrabKey(dpy, code, key[i].mod, root); XGrabKey(dpy, code, key[i].mod, root, True, GrabModeAsync, GrabModeAsync); - /* capslock */ - XUngrabKey(dpy, code, key[i].mod | LockMask, root); XGrabKey(dpy, code, key[i].mod | LockMask, root, True, GrabModeAsync, GrabModeAsync); - /* numlock */ - XUngrabKey(dpy, code, key[i].mod | NUMLOCKMASK, root); XGrabKey(dpy, code, key[i].mod | NUMLOCKMASK, root, True, GrabModeAsync, GrabModeAsync); - /* capslock & numlock */ - XUngrabKey(dpy, code, key[i].mod | NUMLOCKMASK | LockMask, root); XGrabKey(dpy, code, key[i].mod | NUMLOCKMASK | LockMask, root, True, GrabModeAsync, GrabModeAsync); }