X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=dwm.c;h=507084cfebdd96881ea8c238e1e9a795d7778117;hb=bd4deaebfc3bbcd72c032a5525c9f35e73e8a98e;hp=504b78b0dcaa7ed40c19e2714b0bbe1e71532e78;hpb=71365a524f67235024de7db277c63f8ac4f46569;p=dwm.git diff --git a/dwm.c b/dwm.c index 504b78b..507084c 100644 --- a/dwm.c +++ b/dwm.c @@ -39,6 +39,9 @@ #include #include #include +#ifdef XINERAMA +#include +#endif /* macros */ #define MAX(a, b) ((a) > (b) ? (a) : (b)) @@ -1579,22 +1582,32 @@ updatebar(void) { void updategeom(void) { - unsigned int i; - -#ifdef CUSTOMGEOM /* define your own if you are Xinerama user */ - CUSTOMGEOM -#else - /* bar geometry*/ - bx = 0; - by = showbar ? (topbar ? 0 : sh - bh) : -bh; - bw = sw; + int i; +#ifdef XINERAMA + XineramaScreenInfo *info = NULL; /* window area geometry */ - wx = sx; - wy = showbar && topbar ? sy + bh : sy; - ww = sw; - wh = showbar ? sh - bh : sh; + if(XineramaIsActive(dpy)) { + info = XineramaQueryScreens(dpy, &i); + wx = info[0].x_org; + wy = showbar && topbar ? info[0].y_org + bh : info[0].y_org; + ww = info[0].width; + wh = showbar ? info[0].height - bh : info[0].height; + XFree(info); + } + else #endif + { + wx = sx; + wy = showbar && topbar ? sy + bh : sy; + ww = sw; + wh = showbar ? sh - bh : sh; + } + + /* bar geometry*/ + bx = wx; + by = showbar ? (topbar ? 0 : wy + wh) : -bh; + bw = ww; /* update layout geometries */ for(i = 0; i < LENGTH(layouts); i++)