pinentry-dmenu

a pinentry program based on dmenu
git clone anongit@rnpnr.xyz:pinentry-dmenu.git
Log | Files | Refs | Feed | README | LICENSE

Commit: 0fb97fbc49fd3c324b12256f476badaeecd1a2ff
Parent: a4f7d150c7395faf72fb167ac333170668124866
Author: Vlad Glagolev
Date:   Wed,  3 Aug 2022 03:20:29 +0000

Add lineheight support

Diffstat:
Mconfig.h | 2++
Mpinentry-dmenu.1 | 3+++
Mpinentry-dmenu.c | 8++++++--
3 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/config.h b/config.h @@ -5,6 +5,8 @@ static int bottom = 0; static int embedded = 0; static int minpwlen = 32; static int mon = -1; +static int lineheight = 0; +static int min_lineheight = 8; static const char *asterisk = "*"; static const char *fonts[] = { diff --git a/pinentry-dmenu.1 b/pinentry-dmenu.1 @@ -37,6 +37,9 @@ pinentry-dmenu appears at the bottom of the screen. .BI "min_password_length =" " 32" The minimal space of the password field. This value has affect to the description field after the password field. .TP +.BI "height =" " 8" +Height of pinentry-dmenu in pixels (no less than 8) +.TP .BI "monitor =" " -1" pinentry-dmenu is displayed on the monitor number supplied. Monitor numbers are starting from 0. .TP diff --git a/pinentry-dmenu.c b/pinentry-dmenu.c @@ -183,7 +183,7 @@ insert(const char *str, ssize_t n) { static void drawwin(void) { unsigned int curpos; - int x = 0, pb, pbw = 0, i; + int x = 0, fh = drw->fonts->h, pb, pbw = 0, i; size_t asterlen = strlen(asterisk); size_t pdesclen; int leftinput; @@ -255,7 +255,7 @@ drawwin(void) { if ((curpos += lrpad / 2 - 1) < leftinput) { drw_setscheme(drw, scheme[SchemeNormal]); - drw_rect(drw, x + curpos, 2, 2, bh - 4, 1, 0); + drw_rect(drw, x + curpos, 2 + (bh - fh) / 2, 2, fh - 4, 1, 0); } free(censort); @@ -293,6 +293,7 @@ setup(void) { /* Calculate menu geometry */ bh = drw->fonts->h + 2; + bh = MAX(bh, lineheight); mh = bh; #ifdef XINERAMA info = XineramaQueryScreens(dpy, &n); @@ -744,6 +745,9 @@ main(int argc, char *argv[]) { if (config_lookup_int(&cfg, "min_password_length", &val)) { minpwlen = val; } + if (config_lookup_int(&cfg, "height", &val)) { + lineheight = MAX(val, min_lineheight); + } if (config_lookup_int(&cfg, "monitor", &val)) { mon = val; }