about summary refs log tree commit diff
path: root/menu.c
diff options
context:
space:
mode:
authorokan <okan>2013-01-06 01:01:26 +0000
committerokan <okan>2013-01-06 01:01:26 +0000
commit104c7d5de3a92da8b0c3514ef0692ff1e5d0ef82 (patch)
tree4e3ce464112ff297402c202eee26cc2fdaa87dfa /menu.c
parentf77166194f4586cb19abcb7951ca05e356ac74e1 (diff)
parentc426254da5ff69102284524ddc560cfb00c73204 (diff)
downloadcwm-104c7d5de3a92da8b0c3514ef0692ff1e5d0ef82.tar.gz
cwm-104c7d5de3a92da8b0c3514ef0692ff1e5d0ef82.tar.xz
cwm-104c7d5de3a92da8b0c3514ef0692ff1e5d0ef82.zip
cvsimport
Diffstat (limited to 'menu.c')
-rw-r--r--menu.c35
1 files changed, 12 insertions, 23 deletions
diff --git a/menu.c b/menu.c
index 87c04d6..9f152fb 100644
--- a/menu.c
+++ b/menu.c
@@ -350,8 +350,7 @@ menu_draw(struct screen_ctx *sc, struct menu_ctx *mc, struct menu_q *menuq,
     struct menu_q *resultq)
 {
 	struct menu		*mi;
-	XineramaScreenInfo	*xine;
-	int			 xmin, xmax, ymin, ymax;
+	struct geom		 xine;
 	int			 n, xsave, ysave;
 
 	if (mc->list) {
@@ -395,32 +394,22 @@ menu_draw(struct screen_ctx *sc, struct menu_ctx *mc, struct menu_q *menuq,
 	}
 
 	xine = screen_find_xinerama(sc, mc->x, mc->y);
-	if (xine) {
-		xmin = xine->x_org;
-		xmax = xine->x_org + xine->width;
-		ymin = xine->y_org;
-		ymax = xine->y_org + xine->height;
-	} else {
-		xmin = ymin = 0;
-		xmax = sc->view.w;
-		ymax = sc->view.h;
-	}
 
 	xsave = mc->x;
 	ysave = mc->y;
 
 	/* Never hide the top, or left side, of the menu. */
-	if (mc->x + mc->width >= xmax)
-		mc->x = xmax - mc->width;
-	if (mc->x < xmin) {
-		mc->x = xmin;
-		mc->width = xmax - xmin;
+	if (mc->x + mc->width >= xine.w)
+		mc->x = xine.w - mc->width;
+	if (mc->x < xine.x) {
+		mc->x = xine.x;
+		mc->width = xine.w - xine.x;
 	}
-	if (mc->y + mc->height >= ymax)
-		mc->y = ymax - mc->height;
-	if (mc->y < ymin) {
-		mc->y = ymin;
-		mc->height = ymax - ymin;
+	if (mc->y + mc->height >= xine.h)
+		mc->y = xine.h - mc->height;
+	if (mc->y < xine.y) {
+		mc->y = xine.y;
+		mc->height = xine.h - xine.y;
 	}
 
 	if (mc->x != xsave || mc->y != ysave)
@@ -443,7 +432,7 @@ menu_draw(struct screen_ctx *sc, struct menu_ctx *mc, struct menu_q *menuq,
 		int y = n * font_height(sc) + font_ascent(sc) + 1;
 
 		/* Stop drawing when menu doesn't fit inside the screen. */
-		if (mc->y + y > ymax)
+		if (mc->y + y > xine.h)
 			break;
 
 		font_draw(sc, text, MIN(strlen(text), MENU_MAXENTRY),