fixed xinerama corner case
86019c58
1 file(s) · +7 −7
| 506 | 506 | mh = (lines + 1) * bh; |
|
| 507 | 507 | #ifdef XINERAMA |
|
| 508 | 508 | if((info = XineramaQueryScreens(dc->dpy, &n))) { |
|
| 509 | - | int i, m, di; |
|
| 509 | + | int i, di; |
|
| 510 | 510 | unsigned int du; |
|
| 511 | 511 | Window dw; |
|
| 512 | 512 | ||
| 513 | 513 | XQueryPointer(dc->dpy, root, &dw, &dw, &x, &y, &di, &di, &du); |
|
| 514 | - | for(i = 0, m = -1; i < n; i++) |
|
| 514 | + | for(i = 0; i < n-1; i++) |
|
| 515 | 515 | if((monitor == info[i].screen_number) |
|
| 516 | - | || (m < 0 && INRECT(x, y, info[i].x_org, info[i].y_org, info[i].width, info[i].height))) |
|
| 517 | - | m = i; |
|
| 518 | - | x = info[m].x_org; |
|
| 519 | - | y = info[m].y_org + (topbar ? 0 : info[m].height - mh); |
|
| 520 | - | mw = info[m].width; |
|
| 516 | + | || (monitor < 0 && INRECT(x, y, info[i].x_org, info[i].y_org, info[i].width, info[i].height))) |
|
| 517 | + | break; |
|
| 518 | + | x = info[i].x_org; |
|
| 519 | + | y = info[i].y_org + (topbar ? 0 : info[i].height - mh); |
|
| 520 | + | mw = info[i].width; |
|
| 521 | 521 | XFree(info); |
|
| 522 | 522 | } |
|
| 523 | 523 | else |