[CONTACT]

[ABOUT]

[POLICY]

git clone dmenu dmenu Log gph

Found at: gopher.r-36.net:70/scm/dmenu/commit/37236f8840624d5e9d590e7be9ba365bc61913a6.gph

tapplied Connor's patch, thanks! - dmenu - Dmenu fork with xft fonts.

git clone git://r-36.net/dmenu

Log

Files

Refs

README

LICENSE

---

commit 37236f8840624d5e9d590e7be9ba365bc61913a6

parent 7082ba1e1050664309de707bbc5b7194a53ed5ac

Author: Anselm R Garbe

Date:   Sun,  7 Mar 2010 08:32:16 +0000
applied Connor's patch, thanks!
Diffstat:
  dmenu.c                             |      77 +++++++++++++------------------
1 file changed, 33 insertions(+), 44 deletions(-)
---

diff --git a/dmenu.c b/dmenu.c

t@@ -52,6 +52,7 @@ static void calcoffsetsh(void);
 static void calcoffsetsv(void);
 static char *cistrstr(const char *s, const char *sub);
 static void cleanup(void);
+static void drawmenu(void);
 static void drawmenuh(void);
 static void drawmenuv(void);
 static void drawtext(const char *text, unsigned long col[ColLast]);
t@@ -95,7 +96,6 @@ static char *(*fstrstr)(const char *, const char *) = strstr;
 static Bool vlist = False;
 static unsigned int lines = 5;
 static void (*calcoffsets)(void) = calcoffsetsh;
-static void (*drawmenu)(void) = drawmenuh;
 void
 appenditem(Item *i, Item **list, Item **last) {
t@@ -200,7 +200,7 @@ cleanup(void) {
 void
 drawcursor(void) {
-        XRectangle r = { dc.x, dc.y + 2, 1, dc.h - 4 };
+        XRectangle r = { dc.x, dc.y + 2, 1, dc.font.height - 2 };
         r.x += textnw(text, cursor) + dc.font.height / 2;
t@@ -209,9 +209,7 @@ drawcursor(void) {
 }
 void
-drawmenuh(void) {
-        Item *i;
-
+drawmenu(void) {
         dc.x = 0;
         dc.y = 0;
         dc.w = mw;
t@@ -231,56 +229,48 @@ drawmenuh(void) {
         drawcursor();
         dc.x += cmdw;
         if(curr) {
-                dc.w = spaceitem;
-                drawtext((curr && curr->left) ? "<" : NULL, dc.norm);
-                dc.x += dc.w;
-                /* determine maximum items */
-                for(i = curr; i != next; i=i->right) {
-                        dc.w = textw(i->text);
-                        if(dc.w > mw / 3)
-                                dc.w = mw / 3;
-                        drawtext(i->text, (sel == i) ? dc.sel : dc.norm);
-                        dc.x += dc.w;
-                }
-                dc.x = mw - spaceitem;
-                dc.w = spaceitem;
-                drawtext(next ? ">" : NULL, dc.norm);
+                if(vlist)
+                        drawmenuv();
+                else
+                        drawmenuh();
         }
         XCopyArea(dpy, dc.drawable, win, dc.gc, 0, 0, mw, mh, 0, 0);
         XFlush(dpy);
 }
 void
+drawmenuh(void) {
+        Item *i;
+
+        dc.w = spaceitem;
+        drawtext((curr && curr->left) ? "<" : NULL, dc.norm);
+        dc.x += dc.w;
+        /* determine maximum items */
+        for(i = curr; i != next; i=i->right) {
+                dc.w = textw(i->text);
+                if(dc.w > mw / 3)
+                        dc.w = mw / 3;
+                drawtext(i->text, (sel == i) ? dc.sel : dc.norm);
+                dc.x += dc.w;
+        }
+        dc.x = mw - spaceitem;
+        dc.w = spaceitem;
+        drawtext(next ? ">" : NULL, dc.norm);
+}
+
+void
 drawmenuv(void) {
         Item *i;
         dc.x = 0;
-        dc.y = 0;
         dc.w = mw;
-        dc.h = mh;
-        drawtext(NULL, dc.norm);
-        /* print prompt? */
-        if(promptw) {
-                dc.w = promptw;
-                drawtext(prompt, dc.sel);
-        }
-        dc.x += promptw;
-        dc.w = mw - promptw;
-        /* print command */
-        drawtext(text[0] ? text : NULL, dc.norm);
-        if(curr) {
-                dc.x = 0;
-                dc.w = mw;
+        dc.y += dc.font.height + 2;
+        /* determine maximum items */
+        for(i = curr; i != next; i=i->right) {
+                drawtext(i->text, (sel == i) ? dc.sel : dc.norm);
                 dc.y += dc.font.height + 2;
-                /* determine maximum items */
-                for(i = curr; i != next; i=i->right) {
-                        drawtext(i->text, (sel == i) ? dc.sel : dc.norm);
-                        dc.y += dc.font.height + 2;
-                }
-                drawtext(NULL, dc.norm);
         }
-        XCopyArea(dpy, dc.drawable, win, dc.gc, 0, 0, mw, mh, 0, 0);
-        XFlush(dpy);
+        drawtext(NULL, dc.norm);
 }
 void
t@@ -786,8 +776,7 @@ main(int argc, char *argv[]) {
                 else if(!strcmp(argv[i], "-l")) {
                         vlist = True;
                         calcoffsets = calcoffsetsv;
-                        drawmenu = drawmenuv;
-                        if(++i < argc) lines += atoi(argv[i]);
+                        if(++i < argc) lines = atoi(argv[i]);
                 }
                 else if(!strcmp(argv[i], "-fn")) {
                         if(++i < argc) font = argv[i];
.


AD: