| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -10,6 +10,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) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					{ | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -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) | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |