default:
break;
case Button1:
- if(!c->ismax && (arrange == dofloat || c->isfloat)) {
- higher(c);
- movemouse(c);
+ if(!c->ismax) {
+ if(arrange == dofloat || c->isfloat) {
+ higher(c);
+ movemouse(c);
+ }
+ else
+ zoom(NULL);
}
break;
- case Button2:
- lower(c);
- break;
case Button3:
if(!c->ismax && (arrange == dofloat || c->isfloat)) {
higher(c);
XSendEvent(dpy, c->win, True, NoEventMask, &synev);
}
XSync(dpy, False);
- arrange(NULL);
- drawall();
+ if(c->isfloat)
+ resize(c, False, TopLeft);
+ else
+ arrange(NULL);
}
else {
wc.x = ev->x;
Client *c;
XCrossingEvent *ev = &e->xcrossing;
- if(ev->detail == NotifyInferior)
+ if(ev->mode != NotifyNormal || ev->detail == NotifyInferior)
return;
if((c = getclient(ev->window)) || (c = getctitle(ev->window)))
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);
}