From d77340ed53ab7b04e289569b00cb46bd6f3ec06b Mon Sep 17 00:00:00 2001
From: Connor Lane Smith <cls@lubutu.com>
Date: Fri, 30 Jul 2010 09:18:35 +0100
Subject: [PATCH] fixed vlist select

---
 dmenu.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/dmenu.c b/dmenu.c
index b460701..2c1867c 100644
--- a/dmenu.c
+++ b/dmenu.c
@@ -24,6 +24,7 @@ static void calcoffsetsv(void);
 static char *cistrstr(const char *s, const char *sub);
 static void cleanup(void);
 static void dinput(void);
+static void drawitem(char *s, unsigned long col[ColLast]);
 static void drawmenuh(void);
 static void drawmenuv(void);
 static void match(void);
@@ -154,9 +155,14 @@ drawbar(void) {
 	commitdraw(&dc, win);
 }
 
+void
+drawitem(char *s, unsigned long col[ColLast]) {
+	drawbox(&dc, col);
+	drawtext(&dc, s, col);
+}
+
 void
 drawmenuh(void) {
-	unsigned long *col;
 	Item *i;
 
 	dc.x += cmdw;
@@ -165,9 +171,7 @@ drawmenuh(void) {
 	dc.x += dc.w;
 	for(i = curr; i != next; i = i->right) {
 		dc.w = MIN(textw(&dc, i->text), mw / 3);
-		col = (sel == i) ? selcol : normcol;
-		drawbox(&dc, col);
-		drawtext(&dc, i->text, col);
+		drawitem(i->text, (sel == i) ? selcol : normcol);
 		dc.x += dc.w;
 	}
 	dc.w = textw(&dc, ">");
@@ -183,7 +187,7 @@ drawmenuv(void) {
 	dc.y = topbar ? dc.h : 0;
 	dc.w = mw - dc.x;
 	for(i = curr; i != next; i = i->right) {
-		drawtext(&dc, i->text, (sel == i) ? selcol : normcol);
+		drawitem(i->text, (sel == i) ? selcol : normcol);
 		dc.y += dc.h;
 	}
 	if(!XGetWindowAttributes(dpy, win, &wa))