diff -Nur wmii-3.1.orig/cmd/wm/area.c wmii-3.1/cmd/wm/area.c --- wmii-3.1.orig/cmd/wm/area.c 2006-06-17 07:44:30.000000000 -0400 +++ wmii-3.1/cmd/wm/area.c 2006-06-19 23:58:25.000000000 -0400 @@ -41,6 +41,7 @@ a->view = v; a->id = id++; a->rect = rect; + a->rect.y = AREA_VIEW_Y; a->rect.height = rect.height - brect.height; a->mode = def.colmode; a->rect.width = w; @@ -185,8 +186,8 @@ x = 0; else x = fr->rect.x / dx; - if(fr->rect.y < 0) - y = 0; + if(fr->rect.y < AREA_VIEW_Y) + y = AREA_VIEW_Y; else y = fr->rect.y / dy; maxx = (fr->rect.x + fr->rect.width) / dx; @@ -226,7 +227,7 @@ } if(fit && (p1.y + f->rect.height < a->rect.y + a->rect.height)) - f->rect.y = p1.y; + f->rect.y = (p1.y < AREA_VIEW_Y) ? AREA_VIEW_Y : p1.y; else { diff = a->rect.height - f->rect.height; f->rect.y = a->rect.y + (random() % (diff ? diff : 1)); diff -Nur wmii-3.1.orig/cmd/wm/bar.c wmii-3.1/cmd/wm/bar.c --- wmii-3.1.orig/cmd/wm/bar.c 2006-06-17 07:44:30.000000000 -0400 +++ wmii-3.1/cmd/wm/bar.c 2006-06-19 23:59:55.000000000 -0400 @@ -65,7 +65,7 @@ unsigned int i, j; brect = rect; brect.height = height_of_bar(); - brect.y = rect.height - brect.height; + brect.y = WM_BAR_Y; XMoveResizeWindow(dpy, barwin, brect.x, brect.y, brect.width, brect.height); XSync(dpy, False); XFreePixmap(dpy, barpmap); diff -Nur wmii-3.1.orig/cmd/wm/view.c wmii-3.1/cmd/wm/view.c --- wmii-3.1.orig/cmd/wm/view.c 2006-06-17 07:44:30.000000000 -0400 +++ wmii-3.1/cmd/wm/view.c 2006-06-20 00:00:54.000000000 -0400 @@ -303,7 +303,7 @@ for(i = 1; i < v->area.size; i++) { Area *a = v->area.data[i]; a->rect.x = xoff; - a->rect.y = 0; + a->rect.y = AREA_VIEW_Y; a->rect.height = rect.height - brect.height; xoff += a->rect.width; arrange_column(a, False); diff -Nur wmii-3.1.orig/cmd/wm/wm.c wmii-3.1/cmd/wm/wm.c --- wmii-3.1.orig/cmd/wm/wm.c 2006-06-17 07:44:30.000000000 -0400 +++ wmii-3.1/cmd/wm/wm.c 2006-06-20 00:01:55.000000000 -0400 @@ -333,7 +333,7 @@ brect = rect; brect.height = height_of_bar(); - brect.y = rect.height - brect.height; + brect.y = WM_BAR_Y; barwin = XCreateWindow(dpy, RootWindow(dpy, screen), brect.x, brect.y, brect.width, brect.height, 0, DefaultDepth(dpy, screen), CopyFromParent, DefaultVisual(dpy, screen), diff -Nur wmii-3.1.orig/cmd/wm/wm.h wmii-3.1/cmd/wm/wm.h --- wmii-3.1.orig/cmd/wm/wm.h 2006-06-17 07:44:30.000000000 -0400 +++ wmii-3.1/cmd/wm/wm.h 2006-06-20 00:03:07.000000000 -0400 @@ -10,6 +10,15 @@ #include #include +#if BAR_ON_TOP == 1 +#define WM_BAR_Y 0 +#define AREA_VIEW_Y brect.height +#else +#define WM_BAR_Y rect.height - brect.height +#define AREA_VIEW_Y 0 +#endif + + /* WM atoms */ enum { WMState, diff -Nur wmii-3.1.orig/cmd/wmiimenu.c wmii-3.1/cmd/wmiimenu.c --- wmii-3.1.orig/cmd/wmiimenu.c 2006-06-17 07:44:30.000000000 -0400 +++ wmii-3.1/cmd/wmiimenu.c 2006-06-20 00:04:44.000000000 -0400 @@ -20,6 +20,12 @@ #include #include +#if BAR_ON_TOP == 1 +#define MENU_Y 0 +#else +#define MENU_Y DisplayHeight(dpy, screen) - mrect.height +#endif + VECTOR(ItemVector, char *); static Bool done = False; static int ret = 0; @@ -376,7 +382,7 @@ mrect.width = DisplayWidth(dpy, screen); mrect.height = draw.font.ascent + draw.font.descent + 4; - mrect.y = DisplayHeight(dpy, screen) - mrect.height; + mrect.y = MENU_Y; mrect.x = 0; win = XCreateWindow(dpy, RootWindow(dpy, screen), mrect.x, mrect.y, diff -Nur wmii-3.1.orig/config.mk wmii-3.1/config.mk --- wmii-3.1.orig/config.mk 2006-06-17 07:44:29.000000000 -0400 +++ wmii-3.1/config.mk 2006-06-20 00:06:30.000000000 -0400 @@ -12,10 +12,11 @@ # includes and libs LIBS = -L${PREFIX}/lib -L/usr/lib -lc -L${X11LIB} -lX11 +BAR_ON_TOP = 0 # Linux/BSD CFLAGS = -O3 -I. -I${PREFIX}/include -I/usr/include -I${X11INC} \ - -DVERSION=\"${VERSION}\" + -DVERSION=\"${VERSION}\" -DBAR_ON_TOP=${BAR_ON_TOP} LDFLAGS = ${LIBS} # Solaris