Xinqi Bao's Git
projects
/
dwm.git
/ blobdiff
summary
|
log
|
commit
|
diff
|
tree
raw
|
inline
| side by side
new stuff
[dwm.git]
/
event.c
diff --git
a/event.c
b/event.c
index
99216b3
..
faee103
100644
(file)
--- a/
event.c
+++ b/
event.c
@@
-17,10
+17,9
@@
typedef struct {
Arg arg;
} Key;
Arg arg;
} Key;
-CMDS
KEYS
KEYS
-static unsigned int valid_mask = 255 & ~(NUMLOCKMASK | LockMask);
+#define CLEANMASK(mask) (mask & ~(NUMLOCKMASK | LockMask))
static void
movemouse(Client *c)
static void
movemouse(Client *c)
@@
-116,12
+115,10
@@
buttonpress(XEvent *e)
}
break;
case Button4:
}
break;
case Button4:
- a.i = (tsel + 1 < TLast) ? tsel + 1 : 0;
- view(&a);
+ viewnext(&a);
break;
case Button5:
break;
case Button5:
- a.i = (tsel - 1 >= 0) ? tsel - 1 : TLast - 1;
- view(&a);
+ viewprev(&a);
break;
}
}
break;
}
}
@@
-178,11
+175,8
@@
configurerequest(XEvent *e)
wc.width = ev->width;
wc.height = ev->height;
wc.border_width = 1;
wc.width = ev->width;
wc.height = ev->height;
wc.border_width = 1;
- wc.sibling = None;
- wc.stack_mode = Above;
- ev->value_mask &= ~CWStackMode;
- ev->value_mask |= CWBorderWidth;
- XConfigureWindow(dpy, ev->window, ev->value_mask, &wc);
+ XConfigureWindow(dpy, ev->window,
+ CWX|CWY|CWWidth|CWHeight|CWBorderWidth, &wc);
XSync(dpy, False);
}
XSync(dpy, False);
}
@@
-205,7
+199,7
@@
enternotify(XEvent *e)
if(ev->detail == NotifyInferior)
return;
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;
focus(c);
else if(ev->window == root)
issel = True;
@@
-232,11
+226,11
@@
keypress(XEvent *e)
unsigned int i;
KeySym keysym;
XKeyEvent *ev = &e->xkey;
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++)
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;
if(key[i].func)
key[i].func(&key[i].arg);
return;
@@
-338,13
+332,20
@@
grabkeys()
for(i = 0; i < len; i++) {
code = XKeysymToKeycode(dpy, key[i].keysym);
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, 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);
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);
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);
}
XGrabKey(dpy, code, key[i].mod | NUMLOCKMASK | LockMask, root, True,
GrabModeAsync, GrabModeAsync);
}