Xinqi Bao's Git
projects
/
dwm.git
/ blobdiff
summary
|
log
|
commit
|
diff
|
tree
raw
|
inline
| side by side
applied Cedric's NumLock patch
[dwm.git]
/
event.c
diff --git
a/event.c
b/event.c
index
ab57024
..
f177cbe
100644
(file)
--- a/
event.c
+++ b/
event.c
@@
-8,9
+8,6
@@
#include <X11/keysym.h>
#include <X11/Xatom.h>
#include <X11/keysym.h>
#include <X11/Xatom.h>
-#define ButtonMask (ButtonPressMask | ButtonReleaseMask)
-#define MouseMask (ButtonMask | PointerMotionMask)
-
/* CUSTOMIZE */
typedef struct {
/* CUSTOMIZE */
typedef struct {
@@
-22,7
+19,7
@@
typedef struct {
const char *browse[] = { "firefox", NULL };
const char *gimp[] = { "gimp", NULL };
const char *browse[] = { "firefox", NULL };
const char *gimp[] = { "gimp", NULL };
-const char *term[] = {
+const char *term[] = {
/*"xterm", NULL };*/
"urxvt", "-tr", "+sb", "-bg", "black", "-fg", "white", "-cr", "white",
"-fn", "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*", NULL
};
"urxvt", "-tr", "+sb", "-bg", "black", "-fg", "white", "-cr", "white",
"-fn", "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*", NULL
};
@@
-35,8
+32,10
@@
static Key key[] = {
{ MODKEY, XK_2, view, { .i = Tnet } },
{ MODKEY, XK_3, view, { .i = Twork } },
{ MODKEY, XK_4, view, { .i = Tmisc} },
{ MODKEY, XK_2, view, { .i = Tnet } },
{ MODKEY, XK_3, view, { .i = Twork } },
{ MODKEY, XK_4, view, { .i = Tmisc} },
+ { MODKEY, XK_h, viewprev, { 0 } },
{ MODKEY, XK_j, focusnext, { 0 } },
{ MODKEY, XK_k, focusprev, { 0 } },
{ MODKEY, XK_j, focusnext, { 0 } },
{ MODKEY, XK_k, focusprev, { 0 } },
+ { MODKEY, XK_l, viewnext, { 0 } },
{ MODKEY, XK_m, togglemax, { 0 } },
{ MODKEY, XK_space, togglemode, { 0 } },
{ MODKEY, XK_Return, zoom, { 0 } },
{ MODKEY, XK_m, togglemax, { 0 } },
{ MODKEY, XK_space, togglemode, { 0 } },
{ MODKEY, XK_Return, zoom, { 0 } },
@@
-51,13
+50,16
@@
static Key key[] = {
{ MODKEY|ShiftMask, XK_3, replacetag, { .i = Twork } },
{ MODKEY|ShiftMask, XK_4, replacetag, { .i = Tmisc } },
{ MODKEY|ShiftMask, XK_c, killclient, { 0 } },
{ MODKEY|ShiftMask, XK_3, replacetag, { .i = Twork } },
{ MODKEY|ShiftMask, XK_4, replacetag, { .i = Tmisc } },
{ MODKEY|ShiftMask, XK_c, killclient, { 0 } },
+ { MODKEY|ShiftMask, XK_q, quit, { 0 } },
+ { MODKEY|ShiftMask, XK_Return, spawn, { .argv = term } },
{ MODKEY|ShiftMask, XK_g, spawn, { .argv = gimp } },
{ MODKEY|ShiftMask, XK_l, spawn, { .argv = xlock } },
{ MODKEY|ShiftMask, XK_g, spawn, { .argv = gimp } },
{ MODKEY|ShiftMask, XK_l, spawn, { .argv = xlock } },
- { MODKEY|ShiftMask, XK_q, quit, { 0 } },
{ MODKEY|ShiftMask, XK_w, spawn, { .argv = browse } },
{ MODKEY|ShiftMask, XK_w, spawn, { .argv = browse } },
- { MODKEY|ShiftMask, XK_Return, spawn, { .argv = term } },
};
};
+#define NumLockMask Mod2Mask
+unsigned int valid_mask = 255 & ~( NumLockMask | LockMask);
+
/* END CUSTOMIZE */
/* static */
/* END CUSTOMIZE */
/* static */
@@
-166,6
+168,7
@@
buttonpress(XEvent *e)
}
}
else if((c = getclient(ev->window))) {
}
}
else if((c = getclient(ev->window))) {
+ focus(c);
switch(ev->button) {
default:
break;
switch(ev->button) {
default:
break;
@@
-241,7
+244,7
@@
enternotify(XEvent *e)
Client *c;
XCrossingEvent *ev = &e->xcrossing;
Client *c;
XCrossingEvent *ev = &e->xcrossing;
- if(ev->
mode != NotifyNormal || ev->
detail == NotifyInferior)
+ if(ev->detail == NotifyInferior)
return;
if((c = getclient(ev->window)))
return;
if((c = getclient(ev->window)))
@@
-267,14
+270,15
@@
expose(XEvent *e)
static void
keypress(XEvent *e)
{
static void
keypress(XEvent *e)
{
- static unsigned int len =
key ? sizeof(key) / sizeof(key[0]) : 0
;
+ static unsigned int len =
sizeof(key) / sizeof(key[0])
;
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
== ev->state)) {
+ if((keysym == key[i].keysym) && (
(key[i].mod & valid_mask)
== ev->state)) {
if(key[i].func)
key[i].func(&key[i].arg);
return;
if(key[i].func)
key[i].func(&key[i].arg);
return;
@@
-370,14
+374,26
@@
void (*handler[LASTEvent]) (XEvent *) = {
void
grabkeys()
{
void
grabkeys()
{
- static unsigned int len =
key ? sizeof(key) / sizeof(key[0]) : 0
;
+ static unsigned int len =
sizeof(key) / sizeof(key[0])
;
unsigned int i;
KeyCode code;
for(i = 0; i < len; i++) {
code = XKeysymToKeycode(dpy, key[i].keysym);
XUngrabKey(dpy, code, key[i].mod, root);
unsigned int i;
KeyCode code;
for(i = 0; i < len; i++) {
code = XKeysymToKeycode(dpy, key[i].keysym);
XUngrabKey(dpy, code, key[i].mod, root);
+ if (NumLockMask)
+ {
+ 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);
+ if (NumLockMask)
+ {
+ XGrabKey(dpy, code, key[i].mod | NumLockMask, root, True,
+ GrabModeAsync, GrabModeAsync);
+ XGrabKey(dpy, code, key[i].mod | NumLockMask | LockMask, root, True,
+ GrabModeAsync, GrabModeAsync);
+ }
}
}
}
}