dwm.c
changeset 1312 95b9bfa84b57
parent 1311 47b3dbd9a7d3
child 1314 f8c445284353
equal deleted inserted replaced
1311:47b3dbd9a7d3 1312:95b9bfa84b57
  1556 }
  1556 }
  1557 
  1557 
  1558 void
  1558 void
  1559 updategeom(void) {
  1559 updategeom(void) {
  1560 #ifdef XINERAMA
  1560 #ifdef XINERAMA
  1561 	int n;
  1561 	int n, i = 0;
  1562 	unsigned int xidx = 0;
       
  1563 	XineramaScreenInfo *info = NULL;
  1562 	XineramaScreenInfo *info = NULL;
  1564 
  1563 
  1565 	/* window area geometry */
  1564 	/* window area geometry */
  1566 	if(XineramaIsActive(dpy)) {
  1565 	if(XineramaIsActive(dpy)) {
  1567 		info = XineramaQueryScreens(dpy, &n);
  1566 		info = XineramaQueryScreens(dpy, &n);
  1568 		if(n > 1) {
  1567 		if(n > 1) {
  1569 			int di, i, x, y;
  1568 			int di, x, y;
  1570 			unsigned int dui;
  1569 			unsigned int dui;
  1571 			Window dummy;
  1570 			Window dummy;
  1572 			if(XQueryPointer(dpy, root, &dummy, &dummy, &x, &y, &di, &di, &dui))
  1571 			if(XQueryPointer(dpy, root, &dummy, &dummy, &x, &y, &di, &di, &dui))
  1573 				for(i = 0; i < n; i++)
  1572 				for(i = 0; i < n; i++)
  1574 					if(INRECT(x, y, info[i].x_org, info[i].y_org, info[i].width, info[i].height)) {
  1573 					if(INRECT(x, y, info[i].x_org, info[i].y_org, info[i].width, info[i].height))
  1575 						xidx = i;
       
  1576 						break;
  1574 						break;
  1577 					}
  1575 		}
  1578 		}
  1576 		wx = info[i].x_org;
  1579 		wx = info[xidx].x_org;
  1577 		wy = showbar && topbar ?  info[i].y_org + bh : info[i].y_org;
  1580 		wy = showbar && topbar ?  info[xidx].y_org + bh : info[xidx].y_org;
  1578 		ww = info[i].width;
  1581 		ww = info[xidx].width;
  1579 		wh = showbar ? info[i].height - bh : info[i].height;
  1582 		wh = showbar ? info[xidx].height - bh : info[xidx].height;
       
  1583 		XFree(info);
  1580 		XFree(info);
  1584 	}
  1581 	}
  1585 	else
  1582 	else
  1586 #endif
  1583 #endif
  1587 	{
  1584 	{