-       dc->w = textw(dc, ">");
-       dc->x = mw - dc->w;
-       if(next)
-               drawtext(dc, ">", normcol);
-}
-
-void
-drawmenuv(void) {
-       Item *item;
-
-       dc->y = topbar ? dc->h : 0;
-       dc->w = mw - dc->x;
-       for(item = curr; item != next; item = item->right) {
-               drawtext(dc, item->text, (item == sel) ? selcol : normcol);
-               dc->y += dc->h;
+       else if(curr && (dc->w == inputw || curr->next)) {
+               dc->x += inputw;
+               dc->w = textw(dc, "<");
+               if(prev)
+                       drawtext(dc, "<", normcol);
+               for(item = curr; item != next; item = item->right) {
+                       dc->x += dc->w;
+                       dc->w = MIN(textw(dc, item->text), mw/3);
+                       drawtext(dc, item->text, (item == sel) ? selcol : normcol);
+               }
+               dc->w = textw(dc, ">");
+               dc->x = mw - dc->w;
+               if(next)
+                       drawtext(dc, ">", normcol);