|
|
@ -1558,28 +1558,25 @@ updatebar(void) { |
|
|
|
void |
|
|
|
void |
|
|
|
updategeom(void) { |
|
|
|
updategeom(void) { |
|
|
|
#ifdef XINERAMA |
|
|
|
#ifdef XINERAMA |
|
|
|
int n; |
|
|
|
int n, i = 0; |
|
|
|
unsigned int xidx = 0; |
|
|
|
|
|
|
|
XineramaScreenInfo *info = NULL; |
|
|
|
XineramaScreenInfo *info = NULL; |
|
|
|
|
|
|
|
|
|
|
|
/* window area geometry */ |
|
|
|
/* window area geometry */ |
|
|
|
if(XineramaIsActive(dpy)) { |
|
|
|
if(XineramaIsActive(dpy)) { |
|
|
|
info = XineramaQueryScreens(dpy, &n); |
|
|
|
info = XineramaQueryScreens(dpy, &n); |
|
|
|
if(n > 1) { |
|
|
|
if(n > 1) { |
|
|
|
int di, i, x, y; |
|
|
|
int di, x, y; |
|
|
|
unsigned int dui; |
|
|
|
unsigned int dui; |
|
|
|
Window dummy; |
|
|
|
Window dummy; |
|
|
|
if(XQueryPointer(dpy, root, &dummy, &dummy, &x, &y, &di, &di, &dui)) |
|
|
|
if(XQueryPointer(dpy, root, &dummy, &dummy, &x, &y, &di, &di, &dui)) |
|
|
|
for(i = 0; i < n; i++) |
|
|
|
for(i = 0; i < n; i++) |
|
|
|
if(INRECT(x, y, info[i].x_org, info[i].y_org, info[i].width, info[i].height)) { |
|
|
|
if(INRECT(x, y, info[i].x_org, info[i].y_org, info[i].width, info[i].height)) |
|
|
|
xidx = i; |
|
|
|
|
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
wx = info[i].x_org; |
|
|
|
wx = info[xidx].x_org; |
|
|
|
wy = showbar && topbar ? info[i].y_org + bh : info[i].y_org; |
|
|
|
wy = showbar && topbar ? info[xidx].y_org + bh : info[xidx].y_org; |
|
|
|
ww = info[i].width; |
|
|
|
ww = info[xidx].width; |
|
|
|
wh = showbar ? info[i].height - bh : info[i].height; |
|
|
|
wh = showbar ? info[xidx].height - bh : info[xidx].height; |
|
|
|
|
|
|
|
XFree(info); |
|
|
|
XFree(info); |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
else |
|
|
|