dmenu

my fork of dmenu
Index Commits Files Refs README LICENSE
commit 06c18808b6f23bc5120533559e70fbcbff753e84
parent a7aee433ccfd2590e0785a7b93a89d8d0593a234
Author: Connor Lane Smith <cls@lubutu.com>
Date:   Mon,  2 Aug 2010 14:49:14 +0100

replaced promptw
Diffstat:
MMakefile | 2+-
Mdmenu.c | 7+++++--
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/Makefile b/Makefile
@@ -26,7 +26,7 @@ clean:
 dist: clean
     @echo creating dist tarball
     @mkdir -p dmenu-${VERSION}
-    @cp -R LICENSE Makefile README config.mk dmenu.1 dmenu.c dmenu_path dmenu_run dmenu-${VERSION}
+    @cp LICENSE Makefile README config.mk dmenu.1 dmenu.c dmenu_path dmenu_run dmenu-${VERSION}
     @tar -cf dmenu-${VERSION}.tar dmenu-${VERSION}
     @gzip dmenu-${VERSION}.tar
     @rm -rf dmenu-${VERSION}
diff --git a/dmenu.c b/dmenu.c
@@ -42,6 +42,7 @@ static void setup(void);
 static void usage(void);
 
 static char text[4096];
+static int promptw;
 static size_t cursor = 0;
 static const char *prompt = NULL;
 static const char *normbgcolor = "#cccccc";
@@ -79,7 +80,7 @@ void
 calcoffsetsh(void) {
     unsigned int w, x;
 
-    w = (prompt ? textw(dc, prompt) : 0) + inputw + textw(dc, "<") + textw(dc, ">");
+    w = promptw + inputw + textw(dc, "<") + textw(dc, ">");
     for(x = w, next = curr; next; next = next->right)
         if((x += MIN(textw(dc, next->text), mw / 3)) > mw)
             break;
@@ -118,7 +119,7 @@ drawmenu(void) {
     dc->y = topbar ? 0 : mh - dc->h;
     /* print prompt? */
     if(prompt) {
-        dc->w = textw(dc, prompt);
+        dc->w = promptw;
         drawtext(dc, prompt, selcol);
         dc->x = dc->w;
     }
@@ -506,7 +507,9 @@ setup(void) {
     grabkeyboard();
     setcanvas(dc, win, mw, mh);
     inputw = MIN(inputw, mw/3);
+    promptw = prompt ? MIN(textw(dc, prompt), mw/5) : 0;
     XMapRaised(dc->dpy, win);
+    text[0] = '\0';
     match();
 }