dwm.c
changeset 1395 a2c094196714
parent 1393 deaa276abac1
child 1396 440dda47ae5b
equal deleted inserted replaced
1394:662860aa8410 1395:a2c094196714
   795 		XUngrabButton(dpy, AnyButton, AnyModifier, c->win);
   795 		XUngrabButton(dpy, AnyButton, AnyModifier, c->win);
   796 		if(focused) {
   796 		if(focused) {
   797 			for(i = 0; i < LENGTH(buttons); i++)
   797 			for(i = 0; i < LENGTH(buttons); i++)
   798 				if(buttons[i].click == ClkClientWin)
   798 				if(buttons[i].click == ClkClientWin)
   799 					for(j = 0; j < LENGTH(modifiers); j++)
   799 					for(j = 0; j < LENGTH(modifiers); j++)
   800 						XGrabButton(dpy, buttons[i].button, buttons[i].mask | modifiers[j], c->win, False, BUTTONMASK, GrabModeAsync, GrabModeSync, None, None);
   800 						XGrabButton(dpy, buttons[i].button,
       
   801 						            buttons[i].mask | modifiers[j],
       
   802 						            c->win, False, BUTTONMASK,
       
   803 						            GrabModeAsync, GrabModeSync, None, None);
   801 		} else
   804 		} else
   802 			XGrabButton(dpy, AnyButton, AnyModifier, c->win, False,
   805 			XGrabButton(dpy, AnyButton, AnyModifier, c->win, False,
   803 			            BUTTONMASK, GrabModeAsync, GrabModeSync, None, None);
   806 			            BUTTONMASK, GrabModeAsync, GrabModeSync, None, None);
   804 	}
   807 	}
   805 }
   808 }
   934 			c->x = sx + sw - WIDTH(c);
   937 			c->x = sx + sw - WIDTH(c);
   935 		if(c->y + HEIGHT(c) > sy + sh)
   938 		if(c->y + HEIGHT(c) > sy + sh)
   936 			c->y = sy + sh - HEIGHT(c);
   939 			c->y = sy + sh - HEIGHT(c);
   937 		c->x = MAX(c->x, sx);
   940 		c->x = MAX(c->x, sx);
   938 		/* only fix client y-offset, if the client center might cover the bar */
   941 		/* only fix client y-offset, if the client center might cover the bar */
   939 		c->y = MAX(c->y, ((by == 0) && (c->x + (c->w / 2) >= wx) && (c->x + (c->w / 2) < wx + ww)) ? bh : sy);
   942 		c->y = MAX(c->y, ((by == 0) && (c->x + (c->w / 2) >= wx)
       
   943 		                            && (c->x + (c->w / 2) < wx + ww)) ? bh : sy);
   940 		c->bw = borderpx;
   944 		c->bw = borderpx;
   941 	}
   945 	}
   942 
   946 
   943 	wc.border_width = c->bw;
   947 	wc.border_width = c->bw;
   944 	XConfigureWindow(dpy, w, CWBorderWidth, &wc);
   948 	XConfigureWindow(dpy, w, CWBorderWidth, &wc);
  1033 					nx = wx + ww - WIDTH(c);
  1037 					nx = wx + ww - WIDTH(c);
  1034 				if(abs(wy - ny) < snap)
  1038 				if(abs(wy - ny) < snap)
  1035 					ny = wy;
  1039 					ny = wy;
  1036 				else if(abs((wy + wh) - (ny + HEIGHT(c))) < snap)
  1040 				else if(abs((wy + wh) - (ny + HEIGHT(c))) < snap)
  1037 					ny = wy + wh - HEIGHT(c);
  1041 					ny = wy + wh - HEIGHT(c);
  1038 				if(!c->isfloating && lt[sellt]->arrange && (abs(nx - c->x) > snap || abs(ny - c->y) > snap))
  1042 				if(!c->isfloating && lt[sellt]->arrange
       
  1043 				                  && (abs(nx - c->x) > snap || abs(ny - c->y) > snap))
  1039 					togglefloating(NULL);
  1044 					togglefloating(NULL);
  1040 			}
  1045 			}
  1041 			if(!lt[sellt]->arrange || c->isfloating)
  1046 			if(!lt[sellt]->arrange || c->isfloating)
  1042 				resize(c, nx, ny, c->w, c->h);
  1047 				resize(c, nx, ny, c->w, c->h);
  1043 			break;
  1048 			break;
  1538 
  1543 
  1539 	numlockmask = 0;
  1544 	numlockmask = 0;
  1540 	modmap = XGetModifierMapping(dpy);
  1545 	modmap = XGetModifierMapping(dpy);
  1541 	for(i = 0; i < 8; i++)
  1546 	for(i = 0; i < 8; i++)
  1542 		for(j = 0; j < modmap->max_keypermod; j++)
  1547 		for(j = 0; j < modmap->max_keypermod; j++)
  1543 			if(modmap->modifiermap[i * modmap->max_keypermod + j] == XKeysymToKeycode(dpy, XK_Num_Lock))
  1548 			if(modmap->modifiermap[i * modmap->max_keypermod + j]
       
  1549 			   == XKeysymToKeycode(dpy, XK_Num_Lock))
  1544 				numlockmask = (1 << i);
  1550 				numlockmask = (1 << i);
  1545 	XFreeModifiermap(modmap);
  1551 	XFreeModifiermap(modmap);
  1546 }
  1552 }
  1547 
  1553 
  1548 void
  1554 void