Xinqi Bao's Git
projects
/
dwm.git
/ blobdiff
summary
|
log
|
commit
|
diff
|
tree
raw
|
inline
| side by side
changed symbols for float/tiled mode, added mouse-driven mode toggle to buttonpress()
[dwm.git]
/
event.c
diff --git
a/event.c
b/event.c
index
187c65e
..
35cd4f9
100644
(file)
--- a/
event.c
+++ b/
event.c
@@
-18,7
+18,7
@@
typedef struct {
KEYS
KEYS
-#define CLEANMASK(mask) (mask & ~(
NUMLOCKMASK
| LockMask))
+#define CLEANMASK(mask) (mask & ~(
numlockmask
| LockMask))
static void
movemouse(Client *c)
static void
movemouse(Client *c)
@@
-105,20
+105,26
@@
buttonpress(XEvent *e)
XButtonPressedEvent *ev = &e->xbutton;
if(barwin == ev->window) {
XButtonPressedEvent *ev = &e->xbutton;
if(barwin == ev->window) {
- x = 0;
- for(a.i = 0; a.i < ntags; a.i++) {
- x += textw(tags[a.i]);
- if(ev->x < x) {
- if(ev->button == Button1)
- view(&a);
- else if(ev->button == Button3)
- toggleview(&a);
- return;
+ if(ev->x < modew)
+ togglemode(NULL);
+ else {
+ x = modew;
+ for(a.i = 0; a.i < ntags; a.i++) {
+ x += textw(tags[a.i]);
+ if(ev->x < x) {
+ if(ev->button == Button1)
+ view(&a);
+ else if(ev->button == Button3)
+ toggleview(&a);
+ return;
+ }
}
}
}
else if((c = getclient(ev->window))) {
focus(c);
}
}
}
else if((c = getclient(ev->window))) {
focus(c);
+ if(CLEANMASK(ev->state) == 0)
+ return;
switch(ev->button) {
default:
break;
switch(ev->button) {
default:
break;
@@
-378,9
+384,22
@@
grabkeys()
GrabModeAsync, GrabModeAsync);
XGrabKey(dpy, code, key[i].mod | LockMask, root, True,
GrabModeAsync, GrabModeAsync);
GrabModeAsync, GrabModeAsync);
XGrabKey(dpy, code, key[i].mod | LockMask, root, True,
GrabModeAsync, GrabModeAsync);
- XGrabKey(dpy, code, key[i].mod |
NUMLOCKMASK
, root, True,
+ XGrabKey(dpy, code, key[i].mod |
numlockmask
, root, True,
GrabModeAsync, GrabModeAsync);
GrabModeAsync, GrabModeAsync);
- XGrabKey(dpy, code, key[i].mod |
NUMLOCKMASK
| LockMask, root, True,
+ XGrabKey(dpy, code, key[i].mod |
numlockmask
| LockMask, root, True,
GrabModeAsync, GrabModeAsync);
}
}
GrabModeAsync, GrabModeAsync);
}
}
+
+void
+procevent()
+{
+ XEvent ev;
+
+ while(XPending(dpy)) {
+ XNextEvent(dpy, &ev);
+ if(handler[ev.type])
+ (handler[ev.type])(&ev); /* call handler */
+ }
+}
+