@ -39,6 +39,9 @@
# include <X11/Xlib.h>
# include <X11/Xlib.h>
# include <X11/Xproto.h>
# include <X11/Xproto.h>
# include <X11/Xutil.h>
# include <X11/Xutil.h>
# ifdef XINERAMA
# include <X11/extensions/Xinerama.h>
# endif
/* macros */
/* macros */
# define MAX(a, b) ((a) > (b) ? (a) : (b))
# define MAX(a, b) ((a) > (b) ? (a) : (b))
@ -1579,22 +1582,32 @@ updatebar(void) {
void
void
updategeom ( void ) {
updategeom ( void ) {
unsigned int i ;
int i ;
# ifdef XINERAMA
# ifdef CUSTOMGEOM /* define your own if you are Xinerama user */
XineramaScreenInfo * info = NULL ;
CUSTOMGEOM
# else
/* bar geometry*/
bx = 0 ;
by = showbar ? ( topbar ? 0 : sh - bh ) : - bh ;
bw = sw ;
/* window area geometry */
/* window area geometry */
wx = sx ;
if ( XineramaIsActive ( dpy ) ) {
wy = showbar & & topbar ? sy + bh : sy ;
info = XineramaQueryScreens ( dpy , & i ) ;
ww = sw ;
wx = info [ 0 ] . x_org ;
wh = showbar ? sh - bh : sh ;
wy = showbar & & topbar ? info [ 0 ] . y_org + info [ 0 ] . height + bh : info [ 0 ] . y_org ;
ww = info [ 0 ] . width ;
wh = showbar ? info [ 0 ] . height - bh : info [ 0 ] . height ;
XFree ( info ) ;
}
else
# endif
# 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 */
/* update layout geometries */
for ( i = 0 ; i < LENGTH ( layouts ) ; i + + )
for ( i = 0 ; i < LENGTH ( layouts ) ; i + + )