applied Frederik Ternerot's grabbuttons patch with slight modifications
9bb0f205
1 file(s) · +8 −9
| 723 | 723 | ||
| 724 | 724 | void |
|
| 725 | 725 | grabbuttons(Client *c, Bool focused) { |
|
| 726 | - | int i, j; |
|
| 727 | - | uint buttons[] = { Button1, Button2, Button3 }; |
|
| 728 | - | uint modifiers[] = { MODKEY, MODKEY|LockMask, MODKEY|numlockmask, MODKEY|numlockmask|LockMask }; |
|
| 726 | + | uint i, j; |
|
| 727 | + | uint modifiers[] = { 0, LockMask, numlockmask, numlockmask|LockMask }; |
|
| 729 | 728 | ||
| 730 | 729 | XUngrabButton(dpy, AnyButton, AnyModifier, c->win); |
|
| 731 | - | if(focused) |
|
| 730 | + | if(focused) { |
|
| 732 | 731 | for(i = 0; i < LENGTH(buttons); i++) |
|
| 733 | - | for(j = 0; j < LENGTH(modifiers); j++) |
|
| 734 | - | XGrabButton(dpy, buttons[i], modifiers[j], c->win, False, |
|
| 735 | - | BUTTONMASK, GrabModeAsync, GrabModeSync, None, None); |
|
| 736 | - | else |
|
| 732 | + | if(buttons[i].click == ClkClientWin) |
|
| 733 | + | for(j = 0; j < LENGTH(modifiers); j++) |
|
| 734 | + | XGrabButton(dpy, buttons[i].button, buttons[i].mask | modifiers[j], c->win, False, BUTTONMASK, GrabModeAsync, GrabModeSync, None, None); |
|
| 735 | + | } else |
|
| 737 | 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 | 740 | void |