Introduction
Introduction Statistics Contact Development Disclaimer Help
Print highlighted input text only on single match - dmenu - dynamic menu
git clone git://git.suckless.org/dmenu
Log
Files
Refs
README
LICENSE
---
commit a4053bc4e403ae57343f43b7e363a0911bba5a3a
parent 657122f7819fd74d66706ffb607deb44884401b7
Author: Quentin Rameau <[email protected]>
Date: Tue, 26 Jul 2016 12:48:23 +0200
Print highlighted input text only on single match
When the input text fully matches a single item, do not draw the item
and highlight the input text to show that it matches an item in
opposition to regular input text not matching anything.
Diffstat:
M dmenu.c | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
---
diff --git a/dmenu.c b/dmenu.c
@@ -130,7 +130,7 @@ drawmenu(void)
{
unsigned int curpos;
struct item *item;
- int x = 0, y = 0, w;
+ int x = 0, y = 0, w, inputscheme;
drw_setscheme(drw, scheme[SchemeNorm]);
drw_rect(drw, 0, 0, mw, mh, 1, 1);
@@ -138,18 +138,27 @@ drawmenu(void)
if (prompt && *prompt) {
drw_setscheme(drw, scheme[SchemeSel]);
x = drw_text(drw, x, 0, promptw, bh, lrpad / 2, prompt, 0);
+ x += 2;
}
/* draw input field */
w = (lines > 0 || !matches) ? mw - x : inputw;
- drw_setscheme(drw, scheme[SchemeNorm]);
+ if (matches && !strcmp(text, curr->text))
+ inputscheme = SchemeSel;
+ else
+ inputscheme = SchemeNorm;
+ drw_setscheme(drw, scheme[inputscheme]);
+
drw_text(drw, x, 0, w, bh, lrpad / 2, text, 0);
drw_font_getexts(drw->fonts, text, cursor, &curpos, NULL);
if ((curpos += lrpad / 2 - 1) < w) {
- drw_setscheme(drw, scheme[SchemeNorm]);
+ drw_setscheme(drw, scheme[inputscheme]);
drw_rect(drw, x + curpos, 2, 2, bh - 4, 1, 0);
}
+ if (inputscheme == SchemeSel)
+ goto drawmap;
+
if (lines > 0) {
/* draw vertical list */
for (item = curr; item != next; item = item->right)
@@ -171,6 +180,7 @@ drawmenu(void)
drw_text(drw, mw - w, 0, w, bh, lrpad / 2, ">", 0);
}
}
+drawmap:
drw_map(drw, win, 0, 0, mw, mh);
}
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.