local use of xidx is useless, got rid of it, falling back to screen 0 if pointer query fails for whatever reason
7ecadcee
1 file(s) · +7 −10
| 1558 | 1558 | void |
|
| 1559 | 1559 | updategeom(void) { |
|
| 1560 | 1560 | #ifdef XINERAMA |
|
| 1561 | - | int n; |
|
| 1562 | - | unsigned int xidx = 0; |
|
| 1561 | + | int n, i = 0; |
|
| 1563 | 1562 | XineramaScreenInfo *info = NULL; |
|
| 1564 | 1563 | ||
| 1565 | 1564 | /* window area geometry */ |
|
| 1566 | 1565 | if(XineramaIsActive(dpy)) { |
|
| 1567 | 1566 | info = XineramaQueryScreens(dpy, &n); |
|
| 1568 | 1567 | if(n > 1) { |
|
| 1569 | - | int di, i, x, y; |
|
| 1568 | + | int di, x, y; |
|
| 1570 | 1569 | unsigned int dui; |
|
| 1571 | 1570 | Window dummy; |
|
| 1572 | 1571 | if(XQueryPointer(dpy, root, &dummy, &dummy, &x, &y, &di, &di, &dui)) |
|
| 1573 | 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)) { |
|
| 1575 | - | xidx = i; |
|
| 1573 | + | if(INRECT(x, y, info[i].x_org, info[i].y_org, info[i].width, info[i].height)) |
|
| 1576 | 1574 | break; |
|
| 1577 | - | } |
|
| 1578 | 1575 | } |
|
| 1579 | - | wx = info[xidx].x_org; |
|
| 1580 | - | wy = showbar && topbar ? info[xidx].y_org + bh : info[xidx].y_org; |
|
| 1581 | - | ww = info[xidx].width; |
|
| 1582 | - | wh = showbar ? info[xidx].height - bh : info[xidx].height; |
|
| 1576 | + | wx = info[i].x_org; |
|
| 1577 | + | wy = showbar && topbar ? info[i].y_org + bh : info[i].y_org; |
|
| 1578 | + | ww = info[i].width; |
|
| 1579 | + | wh = showbar ? info[i].height - bh : info[i].height; |
|
| 1583 | 1580 | XFree(info); |
|
| 1584 | 1581 | } |
|
| 1585 | 1582 | else |