721 return True; |
721 return True; |
722 } |
722 } |
723 |
723 |
724 void |
724 void |
725 grabbuttons(Client *c, Bool focused) { |
725 grabbuttons(Client *c, Bool focused) { |
726 int i, j; |
726 uint i, j; |
727 uint buttons[] = { Button1, Button2, Button3 }; |
727 uint modifiers[] = { 0, LockMask, numlockmask, numlockmask|LockMask }; |
728 uint modifiers[] = { MODKEY, MODKEY|LockMask, MODKEY|numlockmask, MODKEY|numlockmask|LockMask }; |
|
729 |
728 |
730 XUngrabButton(dpy, AnyButton, AnyModifier, c->win); |
729 XUngrabButton(dpy, AnyButton, AnyModifier, c->win); |
731 if(focused) |
730 if(focused) { |
732 for(i = 0; i < LENGTH(buttons); i++) |
731 for(i = 0; i < LENGTH(buttons); i++) |
733 for(j = 0; j < LENGTH(modifiers); j++) |
732 if(buttons[i].click == ClkClientWin) |
734 XGrabButton(dpy, buttons[i], modifiers[j], c->win, False, |
733 for(j = 0; j < LENGTH(modifiers); j++) |
735 BUTTONMASK, GrabModeAsync, GrabModeSync, None, None); |
734 XGrabButton(dpy, buttons[i].button, buttons[i].mask | modifiers[j], c->win, False, BUTTONMASK, GrabModeAsync, GrabModeSync, None, None); |
736 else |
735 } else |
737 XGrabButton(dpy, AnyButton, AnyModifier, c->win, False, |
736 XGrabButton(dpy, AnyButton, AnyModifier, c->win, False, |
738 BUTTONMASK, GrabModeAsync, GrabModeSync, None, None); |
737 BUTTONMASK, GrabModeAsync, GrabModeSync, None, None); |
739 } |
738 } |
740 |
739 |
741 void |
740 void |
742 grabkeys(void) { |
741 grabkeys(void) { |
743 uint i, j; |
742 uint i, j; |