From e1e1de7b3b8399cba90ddca9613f837b2dbef7b9 Mon Sep 17 00:00:00 2001
From: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Fri, 29 Apr 2022 20:15:48 +0200
Subject: [PATCH] inputw: improve correctness and startup performance, by NRK

Always use ~30% of the monitor width for the input in horizontal mode.

Patch adapted from NRK patches.
This also does not calculate inputw when using vertical mode anymore (because
the code is removed).
---
 dmenu.c | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/dmenu.c b/dmenu.c
index 839f6cc..4e286cf 100644
--- a/dmenu.c
+++ b/dmenu.c
@@ -610,13 +610,12 @@ static void
 setup(void)
 {
 	int x, y, i, j;
-	unsigned int du, tmp;
+	unsigned int du;
 	XSetWindowAttributes swa;
 	XIM xim;
 	Window w, dw, *dws;
 	XWindowAttributes wa;
 	XClassHint ch = {"dmenu", "dmenu"};
-	struct item *item;
 #ifdef XINERAMA
 	XineramaScreenInfo *info;
 	Window pw;
@@ -674,12 +673,7 @@ setup(void)
 		mw = wa.width;
 	}
 	promptw = (prompt && *prompt) ? TEXTW(prompt) - lrpad / 4 : 0;
-	for (item = items; item && item->text; ++item) {
-		if ((tmp = textw_clamp(item->text, mw/3)) > inputw) {
-			if ((inputw = tmp) == mw/3)
-				break;
-		}
-	}
+	inputw = mw / 3; /* input width: ~30% of monitor width */
 	match();
 
 	/* create menu window */