diff options
| author | Anselm R.Garbe <arg@10ksloc.org> | 2006-08-21 09:03:14 +0200 | 
|---|---|---|
| committer | Anselm R.Garbe <arg@10ksloc.org> | 2006-08-21 09:03:14 +0200 | 
| commit | 2272df9d3179ec639066614f4d36d18df16ff725 (patch) | |
| tree | cfb041f3b9838c669942dda1fcaab2ef34eaa89a | |
| parent | 08d85d6d66bc4493414d76e470e473fa689c5990 (diff) | |
applied Sanders focus_* patches, removed the unnecessary clean-prefix from the new function names
| -rw-r--r-- | client.c | 58 | ||||
| -rw-r--r-- | event.c | 2 | 
2 files changed, 32 insertions, 28 deletions
| @@ -11,6 +11,19 @@  /* static functions */  static void +grabbutton(Client *c, unsigned int button, unsigned int modifier) +{ +	XGrabButton(dpy, button, modifier, c->win, False, BUTTONMASK, +			GrabModeAsync, GrabModeSync, None, None); +	XGrabButton(dpy, button, modifier | LockMask, c->win, False, BUTTONMASK, +			GrabModeAsync, GrabModeSync, None, None); +	XGrabButton(dpy, button, modifier | numlockmask, c->win, False, BUTTONMASK, +			GrabModeAsync, GrabModeSync, None, None); +	XGrabButton(dpy, button, modifier | numlockmask | LockMask, c->win, False, BUTTONMASK, +			GrabModeAsync, GrabModeSync, None, None); +} + +static void  resizetitle(Client *c)  {  	int i; @@ -31,6 +44,15 @@ resizetitle(Client *c)  } +static void +ungrabbutton(Client *c, unsigned int button, unsigned int modifier) +{ +	XUngrabButton(dpy, button, modifier, c->win); +	XUngrabButton(dpy, button, modifier | LockMask, c->win); +	XUngrabButton(dpy, button, modifier | numlockmask, c->win); +	XUngrabButton(dpy, button, modifier | numlockmask | LockMask, c->win); +} +  static int  xerrordummy(Display *dsply, XErrorEvent *ee)  { @@ -53,11 +75,14 @@ focus(Client *c)  	if (!issel)  		return; -	if(sel && sel->ismax) +	if(sel && sel->ismax && sel != c)  		togglemax(NULL);  	sel = c; -	if(old && old != c) +	if(old && old != c) { +		grabbutton(old, AnyButton, 0);  		drawtitle(old); +	} +	ungrabbutton(c, AnyButton, 0);  	drawtitle(c);  	XSetInputFocus(dpy, c->win, RevertToPointerRoot, CurrentTime);  } @@ -230,32 +255,9 @@ manage(Window w, XWindowAttributes *wa)  	c->next = clients;  	clients = c; -	XGrabButton(dpy, Button1, MODKEY, c->win, False, BUTTONMASK, -			GrabModeAsync, GrabModeSync, None, None); -	XGrabButton(dpy, Button1, MODKEY | LockMask, c->win, False, BUTTONMASK, -			GrabModeAsync, GrabModeSync, None, None); -	XGrabButton(dpy, Button1, MODKEY | numlockmask, c->win, False, BUTTONMASK, -			GrabModeAsync, GrabModeSync, None, None); -	XGrabButton(dpy, Button1, MODKEY | numlockmask | LockMask, c->win, False, BUTTONMASK, -			GrabModeAsync, GrabModeSync, None, None); - -	XGrabButton(dpy, Button2, MODKEY, c->win, False, BUTTONMASK, -			GrabModeAsync, GrabModeSync, None, None); -	XGrabButton(dpy, Button2, MODKEY | LockMask, c->win, False, BUTTONMASK, -			GrabModeAsync, GrabModeSync, None, None); -	XGrabButton(dpy, Button2, MODKEY | numlockmask, c->win, False, BUTTONMASK, -			GrabModeAsync, GrabModeSync, None, None); -	XGrabButton(dpy, Button2, MODKEY | numlockmask | LockMask, c->win, False, BUTTONMASK, -			GrabModeAsync, GrabModeSync, None, None); - -	XGrabButton(dpy, Button3, MODKEY, c->win, False, BUTTONMASK, -			GrabModeAsync, GrabModeSync, None, None); -	XGrabButton(dpy, Button3, MODKEY | LockMask, c->win, False, BUTTONMASK, -			GrabModeAsync, GrabModeSync, None, None); -	XGrabButton(dpy, Button3, MODKEY | numlockmask, c->win, False, BUTTONMASK, -			GrabModeAsync, GrabModeSync, None, None); -	XGrabButton(dpy, Button3, MODKEY | numlockmask | LockMask, c->win, False, BUTTONMASK, -			GrabModeAsync, GrabModeSync, None, None); +	grabbutton(c, Button1, MODKEY); +	grabbutton(c, Button2, MODKEY); +	grabbutton(c, Button3, MODKEY);  	settags(c);  	if(!c->isfloat) @@ -119,6 +119,8 @@ buttonpress(XEvent *e)  	}  	else if((c = getclient(ev->window))) {  		focus(c); +		if(CLEANMASK(ev->state) == 0) +			return;  		switch(ev->button) {  		default:  			break; | 
