X-Git-Url: https://git.xinqibao.xyz/dmenu.git/blobdiff_plain/d77340ed53ab7b04e289569b00cb46bd6f3ec06b..7f36736d11418b0b11d02da8aa0cb663406706c2:/dmenu.c?ds=sidebyside diff --git a/dmenu.c b/dmenu.c index 2c1867c..9386e06 100644 --- a/dmenu.c +++ b/dmenu.c @@ -24,7 +24,7 @@ static void calcoffsetsv(void); static char *cistrstr(const char *s, const char *sub); static void cleanup(void); static void dinput(void); -static void drawitem(char *s, unsigned long col[ColLast]); +static void drawitem(const char *s, unsigned long col[ColLast]); static void drawmenuh(void); static void drawmenuv(void); static void match(void); @@ -140,6 +140,7 @@ drawbar(void) { /* print prompt? */ if(prompt) { dc.w = promptw; + drawbox(&dc, selcol); drawtext(&dc, prompt, selcol); dc.x += dc.w; } @@ -156,9 +157,14 @@ drawbar(void) { } void -drawitem(char *s, unsigned long col[ColLast]) { +drawitem(const char *s, unsigned long col[ColLast]) { + const char *p; + unsigned int w = textnw(&dc, text, strlen(text)); + drawbox(&dc, col); drawtext(&dc, s, col); + for(p = fstrstr(s, text); *text && (p = fstrstr(p, text)); p++) + drawline(&dc, textnw(&dc, s, p-s) + dc.h/2 - 1, dc.h-2, w, 1, col); } void