Arg arg;
} Key;
-CMDS
KEYS
-static unsigned int valid_mask = 255 & ~(NUMLOCKMASK | LockMask);
+#define CLEANMASK(mask) (mask & ~(NUMLOCKMASK | LockMask))
static void
movemouse(Client *c)
ocx = c->x;
ocy = c->y;
- if(XGrabPointer(dpy, root, False, MouseMask, GrabModeAsync, GrabModeAsync,
+ if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync,
None, cursor[CurMove], CurrentTime) != GrabSuccess)
return;
XQueryPointer(dpy, root, &dummy, &dummy, &x1, &y1, &di, &di, &dui);
for(;;) {
- XMaskEvent(dpy, MouseMask | ExposureMask, &ev);
+ XMaskEvent(dpy, MOUSEMASK | ExposureMask, &ev);
switch (ev.type) {
default: break;
case Expose:
ocx = c->x;
ocy = c->y;
- if(XGrabPointer(dpy, root, False, MouseMask, GrabModeAsync, GrabModeAsync,
+ if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync,
None, cursor[CurResize], CurrentTime) != GrabSuccess)
return;
XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w, c->h);
for(;;) {
- XMaskEvent(dpy, MouseMask | ExposureMask, &ev);
+ XMaskEvent(dpy, MOUSEMASK | ExposureMask, &ev);
switch(ev.type) {
default: break;
case Expose:
}
break;
case Button4:
- a.i = (tsel + 1 < TLast) ? tsel + 1 : 0;
- view(&a);
+ viewnext(&a);
break;
case Button5:
- a.i = (tsel - 1 >= 0) ? tsel - 1 : TLast - 1;
- view(&a);
+ viewprev(&a);
break;
}
}
if(ev->detail == NotifyInferior)
return;
- if((c = getclient(ev->window)))
+ if((c = getclient(ev->window)) || (c = getctitle(ev->window)))
focus(c);
else if(ev->window == root)
issel = True;
unsigned int i;
KeySym keysym;
XKeyEvent *ev = &e->xkey;
- ev->state &= valid_mask;
keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0);
for(i = 0; i < len; i++)
- if((keysym == key[i].keysym) && ((key[i].mod & valid_mask) == ev->state)) {
+ if(keysym == key[i].keysym &&
+ CLEANMASK(key[i].mod) == CLEANMASK(ev->state)) {
if(key[i].func)
key[i].func(&key[i].arg);
return;
for(i = 0; i < len; i++) {
code = XKeysymToKeycode(dpy, key[i].keysym);
+ /* normal */
XUngrabKey(dpy, code, key[i].mod, root);
- XUngrabKey(dpy, code, key[i].mod | NUMLOCKMASK, root);
- XUngrabKey(dpy, code, key[i].mod | NUMLOCKMASK | LockMask, 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);
}